CSS filter 属性


实例

把所有图像都改为黑白(100% 灰色):

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>
  5. img {
  6. filter: grayscale(100%);
  7. }
  8. </style>
  9. </head>
  10. <body>
  11. <h1>filter 属性</h1>
  12. <p>将图像转换为灰阶:</p>
  13. <img src="/images/pineapple.jpg" width="300" height="300">
  14. <p><b>注释:</b>Edge 12 或 Internet Explorer 不支持 filter 属性。</p>
  15. </body>
  16. </html>

定义和用法

filter 属性定义元素(通常是 <img>)的视觉效果(如模糊和饱和度)。

默认值:none
继承:
动画制作:支持。请参阅:动画相关属性
版本:CSS3
JavaScript 语法:object.style.filter="grayscale(100%)"

浏览器支持

表格中的数字注明了完全支持该属性的首个浏览器版本。

带 -webkit- 的数字表示使用前缀的首个版本。

属性
filter53.018.0 -webkit-13.035.09.16.0 -webkit-40.015.0 -webkit-

注释:较旧版本的 Internet Explorer(4. 0到 8.0)支持已弃用的非标准 "filter" 属性。当需要 IE8 及更低版本的支持时,主要用于不透明度。


CSS 语法

  1. filter: none | blur() | brightness() | contrast() | drop-shadow() | grayscale() | hue-rotate() | invert() | opacity() | saturate() | sepia() | url();

提示:如需使用多个滤镜,请用空格分隔每个滤镜(参见页面下方的更多实例)。


滤镜函数

注释:使用百分比值(例如 75%)的滤镜,也接受该值是十进制(例如 0.75)。

滤镜描述
none默认值。规定无效果。
blur(px)

对图像应用模糊效果。较大的值将产生更多的模糊。

如果为指定值,则使用 0。

brightness(%)

调整图像的亮度。

  • 0% 将使图像完全变黑。
  • 默认值是 100%,代表原始图像。
  • 值超过 100% 将提供更明亮的结果。
contrast(%)

调整图像的对比度。

  • 0% 将使图像完全变黑。
  • 默认值是 100%,代表原始图像。
  • 超过 100% 的值将提供更具对比度的结果。
drop-shadow(h-shadow v-shadow blur spread color)

对图像应用阴影效果。

可能的值:

  • h-shadow - 必需。指定水平阴影的像素值。负值会将阴影放置在图像的左侧。
  • v-shadow - 必需。指定垂直阴影的像素值。负值会将阴影放置在图像上方。

blur -可选。这是第三个值,单位必须用像素。为阴影添加模糊效果。值越大创建的模糊就越多(阴影会变得更大更亮)。不允许负值。如果未规定值,会使用 0(阴影的边缘很锐利)。

spread - 可选。这是第四个值,单位必须用像素。正值将导致阴影扩展并增大,负值将导致阴影缩小。如果未规定值,会使用 0(阴影与元素的大小相同)。

注释:Chrome、Safari 和 Opera,也许还有其他浏览器,不支持第 4 个长度;如果添加,则不会呈现。

color - 可选。为阴影添加颜色。如果未规定,则颜色取决于浏览器(通常为黑色)。

这个例子创建了红色的阴影,水平和垂直方向均为 8px,带有 10px 的模糊效果:

filter: drop-shadow(8px 8px 10px red);

提示:这个滤镜类似 box-shadow 属性。

grayscale(%)

将图像转换为灰阶。

  • 0% (0) 是默认值,代表原始图像。
  • 100% 将使图像完全变灰(用于黑白图像)。

注释:不允许负值。

hue-rotate(deg)

在图像上应用色相旋转。该值定义色环的度数。默认值为 0deg,代表原始图像。

注释:最大值是 360deg。

invert(%)

反转图像中的样本。

  • 0% (0) 是默认值,代表原始图像。
  • 100%将使图像完全反转。

注释:不允许负值。

opacity(%)

设置图像的不透明度级别。opacity-level 描述了透明度级别,其中:

  • 0% 为完全透明。
  • 100% (1) 是默认值,代表原始图像(不透明)。

注释:不允许负值。

提示:这个滤镜类似 opacity 属性。

saturate(%)

设置图像的饱和度。

  • 0% (0) will make the image completely un-saturated.
  • 100% is default and represents the original image.
  • Values over 100% provides super-saturated results.

注释:不允许负值。

sepia(%)

将图像转换为棕褐色。

  • 0% (0) 是默认值,代表原始图像。
  • 100% 将使图像完全变为棕褐色。

注释:不允许负值。

url()

url() 函数接受规定 SVG 滤镜的 XML 文件的位置,并且可以包含指向特定滤镜元素的锚点。实例:

filter: url(svg-url#element-id)

initial将此属性设置为其默认值。参阅 initial
inherit从其父元素继承此属性。参阅 inherit

更多实例

模糊实例

为图像添加模糊效果:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>
  5. img {
  6. filter: blur(5px);
  7. }
  8. </style>
  9. </head>
  10. <body>
  11. <h1>filter 属性</h1>
  12. <p>对图像应用模糊效果:</p>
  13. <img src="/images/pineapple.jpg" width="300" height="300">
  14. <p><b>注释:</b>Edge 12 或 Internet Explorer 不支持 filter 属性。</p>
  15. </body>
  16. </html>
模糊实例 2

应用模糊的背景图片:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>
  5. img.background {
  6. width: 100%;
  7. height: 100%;
  8. position: absolute;
  9. left: 0px;
  10. top: 0px;
  11. z-index: -1;
  12. filter: blur(35px);
  13. }
  14. img.circle {
  15. border-radius: 50%;
  16. display: block;
  17. margin: 0 auto;
  18. height: auto;
  19. max-width: 60%;
  20. }
  21. </style>
  22. </head>
  23. <body>
  24. <h1>filter 属性</h1>
  25. <p>背景模糊:</p>
  26. <img class="background" src="/images/pineapple.jpg" width="300" height="300">
  27. <img class="circle" src="/images/pineapple.jpg" width="300" height="300">
  28. <p><b>注释:</b>Edge 12 或 Internet Explorer 不支持 filter 属性。</p>
  29. </body>
  30. </html>
亮度实例

调整图像的亮度:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>
  5. img {
  6. filter: brightness(200%);
  7. }
  8. </style>
  9. </head>
  10. <body>
  11. <h1>filter 属性</h1>
  12. <p>调整图像的亮度:</p>
  13. <img src="/images/pineapple.jpg" width="300" height="300">
  14. <p><b>注释:</b>Edge 12 或 Internet Explorer 不支持 filter 属性。</p>
  15. </body>
  16. </html>
对比度实例

调整图像的对比度:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>
  5. img {
  6. filter: contrast(200%);
  7. }
  8. </style>
  9. </head>
  10. <body>
  11. <h1>filter 属性</h1>
  12. <p>调整图像的对比度:</p>
  13. <img src="/images/pineapple.jpg" width="300" height="300">
  14. <p><b>注释:</b>Edge 12 或 Internet Explorer 不支持 filter 属性。</p>
  15. </body>
  16. </html>
阴影实例

为图像应用阴影效果:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>
  5. img {
  6. filter: drop-shadow(8px 8px 10px gray);
  7. }
  8. </style>
  9. </head>
  10. <body>
  11. <h1>filter 属性</h1>
  12. <p>对图像应用阴影效果:</p>
  13. <img src="/images/pineapple.jpg" width="300" height="300">
  14. <p><b>注释:</b>Edge 12 或 Internet Explorer 不支持 filter 属性。</p>
  15. </body>
  16. </html>
灰阶实例

将图像转换为灰阶:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>
  5. img {
  6. filter: grayscale(50%);
  7. }
  8. </style>
  9. </head>
  10. <body>
  11. <h1>filter 属性</h1>
  12. <p>将图像转换为灰阶:</p>
  13. <img src="/images/pineapple.jpg" width="300" height="300">
  14. <p><b>注释:</b>Edge 12 或 Internet Explorer 不支持 filter 属性。</p>
  15. </body>
  16. </html>
色相旋转实例

在图像上应用色相旋转:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>
  5. img {
  6. filter: hue-rotate(90deg);
  7. }
  8. </style>
  9. </head>
  10. <body>
  11. <h1>filter 属性</h1>
  12. <p>在图像上应用色相旋转:</p>
  13. <img src="/images/pineapple.jpg" width="300" height="300">
  14. <p><b>注释:</b>Edge 12 或 Internet Explorer 不支持 filter 属性。</p>
  15. </body>
  16. </html>
反转实例

反转图像中的样本:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>
  5. img {
  6. filter: invert(100%);
  7. }
  8. </style>
  9. </head>
  10. <body>
  11. <h1>filter 属性</h1>
  12. <p>反转图像中的样本:</p>
  13. <img src="/images/pineapple.jpg" width="300" height="300">
  14. <p><b>注释:</b>Edge 12 或 Internet Explorer 不支持 filter 属性。</p>
  15. </body>
  16. </html>
不透明度实例

设置图像的不透明度级别:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>
  5. img {
  6. filter: opacity(30%);
  7. }
  8. </style>
  9. </head>
  10. <body>
  11. <h1>filter 属性</h1>
  12. <p>更改图像的不透明度级别:</p>
  13. <img src="/images/pineapple.jpg" width="300" height="300">
  14. <p><b>注释:</b>Edge 12 或 Internet Explorer 不支持 filter 属性。</p>
  15. </body>
  16. </html>
饱和度实例

调整图像的饱和度:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>
  5. img {
  6. filter: saturate(800%);
  7. }
  8. </style>
  9. </head>
  10. <body>
  11. <h1>filter 属性</h1>
  12. <p>提高图像饱和度:</p>
  13. <img src="/images/pineapple.jpg" width="300" height="300">
  14. <p><b>注释:</b>Edge 12 或 Internet Explorer 不支持 filter 属性。</p>
  15. </body>
  16. </html>
棕褐色实例

将图像转换为棕褐色:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>
  5. img {
  6. filter: sepia(100%);
  7. }
  8. </style>
  9. </head>
  10. <body>
  11. <h1>filter 属性</h1>
  12. <p>将图像转换为棕褐色:</p>
  13. <img src="/images/pineapple.jpg" width="300" height="300">
  14. <p><b>注释:</b>Edge 12 或 Internet Explorer 不支持 filter 属性。</p>
  15. </body>
  16. </html>
使用多重滤镜

要使用多个滤镜,请用空格分隔每个滤镜。请注意,顺序很重要(例如在 sepia() 之后使用 grayscale() 将产生完全灰色的图像):

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>
  5. img {
  6. filter: contrast(200%) brightness(150%);
  7. }
  8. </style>
  9. </head>
  10. <body>
  11. <h1>filter 属性</h1>
  12. <p>调整图像的对比度和亮度:</p>
  13. <img src="/images/pineapple.jpg" width="300" height="300">
  14. <p><b>注释:</b>Edge 12 或 Internet Explorer 不支持 filter 属性。</p>
  15. </body>
  16. </html>
所有滤镜

演示所有滤镜函数:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>
  5. img {
  6. width: 33%;
  7. height: auto;
  8. float: left;
  9. }
  10. .blur {filter: blur(4px);}
  11. .brightness {filter: brightness(0.30);}
  12. .contrast {filter: contrast(180%);}
  13. .grayscale {filter: grayscale(100%);}
  14. .huerotate {filter: hue-rotate(180deg);}
  15. .invert {filter: invert(100%);}
  16. .opacity {filter: opacity(50%);}
  17. .saturate {filter: saturate(7);}
  18. .sepia {filter: sepia(100%);}
  19. .shadow {filter: drop-shadow(8px 8px 10px green);}
  20. </style>
  21. </head>
  22. <body>
  23. <h1>filter 属性</h1>
  24. <img src="/images/pineapple.jpg" alt="Pineapple" width="300" height="300">
  25. <img class="blur" src="/images/pineapple.jpg" alt="Pineapple" width="300" height="300">
  26. <img class="brightness" src="/images/pineapple.jpg" alt="Pineapple" width="300" height="300">
  27. <img class="contrast" src="/images/pineapple.jpg" alt="Pineapple" width="300" height="300">
  28. <img class="grayscale" src="/images/pineapple.jpg" alt="Pineapple" width="300" height="300">
  29. <img class="huerotate" src="/images/pineapple.jpg" alt="Pineapple" width="300" height="300">
  30. <img class="invert" src="/images/pineapple.jpg" alt="Pineapple" width="300" height="300">
  31. <img class="opacity" src="/images/pineapple.jpg" alt="Pineapple" width="300" height="300">
  32. <img class="saturate" src="/images/pineapple.jpg" alt="Pineapple" width="300" height="300">
  33. <img class="sepia" src="/images/pineapple.jpg" alt="Pineapple" width="300" height="300">
  34. <img class="shadow" src="/images/pineapple.jpg" alt="Pineapple" width="300" height="300">
  35. <p><b>注释:</b>Edge 12 或 Internet Explorer 不支持 filter 属性。</p>
  36. </body>
  37. </html>

相关页面

CSS 教程:CSS 图像

HTML DOM 参考手册:filter 属性

分类导航