试一试
filter: contrast(1);
filter: contrast(1.75);
filter: contrast(50%);
filter: contrast(0);
<section id="default-example">
<img
class="transition-all"
id="example-element"
src="/shared-assets/images/examples/firefox-logo.svg"
width="200" />
</section>
语法
css
contrast(amount)
值
amount可选-
结果的对比度,指定为
<number>或<percentage>。低于100%的值会降低对比度,而高于100%的值会增加对比度。值为0或0%将创建一个完全灰色的图像,而值为1或100%则保持输入不变。不允许使用负值。插值的初始值为1。默认值为1。
以下是等效值对
css
contrast(0) /* Completely gray */
contrast(0%)
contrast(0.65) /* 65% contrast */
contrast(65%)
contrast() /* No effect */
contrast(1)
contrast(100%)
contrast(2) /* Double contrast */
contrast(200%)
正式语法
<contrast()> =
contrast( [ <number> | <percentage> ]? )
示例
与 backdrop-filter 属性配合使用
此示例通过 backdrop-filter CSS 属性对段落和等宽文本应用 contrast() 滤镜,对 <p> 和 <code> 后面的区域进行颜色偏移。
css
.container {
background: url("unity_for_the_people.jpg") no-repeat center / contain #333399;
}
p {
backdrop-filter: contrast(0.5);
}
code {
backdrop-filter: contrast(0.15);
}
与 filter 属性配合使用
此示例通过 filter CSS 属性应用 contrast() 滤镜,通过改变整个元素(包括内容、边框、背景和阴影)的颜色来改变对比度。
css
p:first-of-type {
filter: contrast(30%);
}
p:last-of-type {
filter: contrast(300%);
}
与 url() 和 SVG 对比度滤镜配合使用
SVG <filter> 元素用于定义自定义滤镜效果,然后可以通过 id 引用这些效果。<filter> 的 <feComponentTransfer> 原语支持像素级颜色重映射。给定以下内容
html
<svg
xmlns="http://www.w3.org/2000/svg"
id="svg"
viewBox="0 0 240 151"
height="0"
width="0"
overflow="visible"
color-interpolation-filters="sRGB">
<filter id="contrast">
<feComponentTransfer>
<feFuncR type="linear" slope="2" intercept="-0.5" />
<feFuncG type="linear" slope="2" intercept="-0.5" />
<feFuncB type="linear" slope="2" intercept="-0.5" />
</feComponentTransfer>
</filter>
</svg>
这些值产生相同的结果
css
filter: contrast(200%);
filter: url("#contrast"); /* with embedded SVG */
filter: url("folder/fileName.svg#contrast"); /* external svg filter definition */
此示例展示了三张图像:应用了 contrast() 滤镜函数的图像,应用了等效 url() 滤镜的图像,以及原始图像用于比较
规范
| 规范 |
|---|
| 滤镜效果模块第 1 级 # funcdef-filter-contrast |
浏览器兼容性
加载中…
另见
- CSS 滤镜效果模块
- 在
filter和backdrop-filter属性值中可用的其他<filter-function>函数包括: