- CSS 菜鸟教程
- CSS - 教程
- CSS - 简介
- CSS - 语法
- CSS - 选择器
- CSS - 包含
- CSS - 度量单位
- CSS - 颜色
- CSS - 背景
- CSS - 字体
- CSS - 文本
- CSS - 图像
- CSS - 链接
- CSS - 表格
- CSS - 边框
- CSS - border-block 属性
- CSS - 边框内联
- CSS - 边距
- CSS - 列表
- CSS - Padding 属性
- CSS - 光标
- CSS - 轮廓
- CSS - 维度
- CSS - 滚动条
- CSS - 内联块
- CSS - 下拉列表
- CSS - visibility 属性
- CSS - Overflow 属性
- CSS - 清除修复
- CSS - float(浮点)
- CSS - 箭头
- CSS - resize 属性
- CSS - quotes 属性
- CSS - order 属性
- CSS - Position 属性
- CSS - hypens 属性
- CSS - :hover(悬停)
- CSS - display(显示)
- CSS - focus 属性
- CSS - zoom(缩放)
- CSS - translate 属性
- CSS - Height 属性
- CSS - hyphenate-character 属性
- CSS - Width 属性
- CSS - opacity 属性
- CSS - z-index 属性
- CSS - bottom 属性
- CSS - 导航栏
- CSS - 覆盖
- CSS - 表单
- CSS - 对齐
- CSS - 图标
- CSS - 图片库
- CSS - 注释
- CSS - 加载器
- CSS - Atrribute 选择器属性
- CSS - 运算器
- CSS - root
- CSS - 盒子模型
- CSS - 计数器
- CSS - Clip (Obsolete) 属性
- CSS - writing-mode 属性
- CSS - Unicode-bidi 属性
- CSS - min-content 属性
- CSS - 全部
- CSS - inset 属性
- CSS - isolation 属性
- CSS - overscroll-behavior 属性
- CSS - justify-items 属性
- CSS - justify-self 属性
- CSS - tab-size 属性
- CSS - pointer-event 属性
- CSS - place-content 属性
- CSS - place-items 属性
- CSS - place-self 属性
- CSS - max-block-size 属性
- CSS - min-block-size 属性
- CSS - mix-blend-mode 属性
- CSS - max-inline-size 属性
- CSS - min-inline-size 属性
- CSS - offset 属性
- CSS - accent-color 属性
- CSS - user-select 属性
- CSS 高级
- CSS - grid 属性
- CSS - Grid 布局
- CSS - flexbox
- CSS - vertical-align 属性
- css - positioning
- css - layers
- css - pseudo_classes
- CSS - 伪元素
- CSS - @ 规则
- CSS 滤镜 - text-effect 属性
- CSS 分页媒体
- CSS 打印
- CSS - 布局
- CSS - 验证
- CSS - 图像精灵
- CSS - !important
- CSS - 数据类型
- CSS3 教程
- CSS - 圆角
- CSS - 边框图像
- CSS - 多种背景
- CSS - 渐变
- CSS - box-shadow 属性
- CSS - box-decoration-break 属性
- CSS - caret-color 属性
- CSS - text-shadow 属性
- CSS - 2D 转换
- CSS - 3D 变换
- CSS - transition 属性
- CSS - 动画
- CSS - 多列布局
- CSS - 盒子大小调整
- CSS - 工具提示
- CSS - buttons
- CSS - 分页
- CSS - 变量
- CSS - 媒体查询
- CSS - 值函数
- CSS - 数学函数
- CSS - Mask 属性
- CSS - shape-outside 属性
- CSS - 样式图像
- CSS - 特异性
- CSS - 自定义属性
- CSS 响应式
- CSS - 响应式网页设计 (RWD)
- CSS - 响应式设计视口
- CSS - 响应式网格视图
- CSS - 响应式媒体查询
- CSS - 响应式图像
- CSS - 响应式视频
- CSS - 响应式框架
- CSS 引用
- CSS - 所有属性列表
- CSS - 颜色引用
- CSS - 浏览器支持参考
- CSS - 网页字体
- CSS 工具
- CSS - PX 到 EM 的转换
CSS 滤镜 - text-effect 属性
CSS 提供了一个非常强大的工具,可以帮助为文本、图像、背景、边框等添加特殊的视觉效果。滤镜(filter)可用于调整网页这些方面的呈现。
在本章中,我们将通过示例详细讨论每个 CSS 滤镜(filter)。
- filter 属性的值可以是 none,也可以是本章后面列出的一个或多个函数。
- 如果未向任何函数传递参数或将参数传递给无效参数,则返回 none。
- 接受以百分比 (%) 表示的参数值的函数也接受以小数表示的相同值 expreseed。例如,55% 可以作为 0.55 传递
- 可以传递多个函数给 filter 属性,只是您需要在它们之间添加空格。
- 当传递多个函数时,这些滤镜(filter)将按照它们传递的顺序应用。
- 可以重复相同的过滤功能。例如:filter:blur(20px) hue-rotate(45deg) blur(15px)。
以下是可以与 filter 属性一起使用的函数列表:
功能 | 参数 | 描述 | 示例 |
---|---|---|---|
blur() | 蓝色效果的半径(px、rem 等) | 对输入图像应用模糊效果。 | filter:blur(10px); |
brightness() | 值是百分比或小数 (%)。0% - 黑色图像,100% - 无效果,超过 100% - 提亮元素。 | 调整元素的亮度。 | filter:brightness(62% | 0.62); |
contrast() | 值是百分比或小数 (%)。0% - 灰色,100% - 无效果,超过 100% - 产生对比度。 | 调整元素的对比度。 | filter:contrast(200%); |
grayscale() | 值是百分比或小数 (%)。0% - 无影响,100% - 完全灰度。 | 将元素转换为灰度。 | filter:grayscale(80%); |
drop-shadow() | 值指定水平和垂直偏移量、模糊半径以及阴影的颜色。 | 将投影效果应用于元素 | filter: drop-shadow(2px 2px 4px rgba(0, 0, 0, 0.5)); |
hue-rotate() | 值是以度为单位的角度。 | 对元素应用色相旋转。 | filter:hue-rotate(80deg); |
invert() | 值是以度为单位的角度。 | I反转元素的颜色。 | filter: invert(75%); |
opacity() | 值是一个百分比。0% - 完全透明,100% - 完全不透明。 | 调整元素的透明度。 | filter: opacity(75%); |
saturate() | 值是一个百分比。 | 调整元素的饱和度。 | filter: saturate(200%); |
sepia() | 值是一个百分比。 | 调整元素的棕褐色效果。 | filter: sepia(90%); |
url() | 指定 SVG 滤镜(filter)的 XML 文件的路径,并且可能包含指向特定滤镜(filter)元素的定位点。 | 用于应用 SVG 滤镜。 | filter:url(svg-url#element-id); |
CSS 滤镜(filter) - blur()
blur() 函数用于为文本或图像添加模糊效果。
该函数可以将以下值作为参数:
blur radius:指定为 <length> 值。该值越大,模糊效果就越大。
- 默认值为 0。
- 该函数不接受百分比值。
下面是一个示例:
<html>
<head>
</head>
<body>
<h2>Blur effect </h2>
<div>
<h3 style="filter: blur(2px); font-size: 3rem;">Blur(5px)</h3>
<img style="filter: blur(5px); width: 400px; height: 300px;" src="images/red-flower.jpg" alt="showing blur effect">
</div>
<div>
<h3 style="filter: blur(0.5rem); font-size: 3rem;">Blur(2rem)</h3>
<h3>Blur(5px)</h3>
<img style="filter: blur(5px); width: 400px; height: 300px;" src="images/red-flower.jpg" alt="showing blur effect">
</div>
<div>
<h3>Blur(2rem)</h3>
<img style="filter: blur(2rem); width: 400px; height: 300px;" src="images/red-flower.jpg" alt="showing blur effect">
</div>
</body>
</html>
CSS 滤镜(filter) - brightness()
Brightness() 函数用于通过应用线性乘数值为文本或图像添加亮度效果。这使元素看起来更亮或更暗。
该函数可以将以下值作为参数:
amount:指定为 <number> 或 <percentage> 值。
- 该值小于 100%,会使元素变暗。
- 值超过100%,使元素明亮。
- 等于 100% 的值不起作用。
- 默认值为 1。
- 不允许使用负值。
下面是一个示例:
<html>
<head>
</head>
<body>
<h2>Brightness effect </h2>
<div>
<h3 style="filter: brightness(120%); font-size: 2rem;">Brightness(120%)</h3>
<img style="filter: brightness(120%); width: 400px; height: 300px;" src="images/red-flower.jpg" alt="showing brightness effect">
</div>
<div>
<h3 style="filter: brightness(0.38); font-size: 2rem;">Brightness(0.38)</h3>
<h3>Brightness(120%)</h3>
<img style="filter: brightness(120%); width: 400px; height: 300px;" src="images/red-flower.jpg" alt="showing brightness effect">
</div>
<div>
<h3>Brightness(0.38)</h3>
<img style="filter: brightness(0.38); width: 400px; height: 300px;" src="images/red-flower.jpg" alt="showing brightness effect">
</div>
</body>
</html>
CSS 滤镜(filter) - contrast()
contrast() 函数用于为文本或图像添加对比效果。
该函数可以将以下值作为参数:
amount:指定为 <number> 或 <percentage> 值。
- 该值小于 100%,则降低对比度。
- 值超过100%,增加对比度。
- 值等于 0% 或 0,将使元素完全变灰。
- 等于 100% 的值不起作用。
- 默认值为 1。
- 不允许使用负值。
下面是一个示例:
<html>
<head>
</head>
<body>
<h2>Contrast effect </h2>
<div>
<h3 style="filter: contrast(20%); font-size: 2rem;">Contrast(120%)</h3>
<img style="filter: contrast(120%); width: 400px; height: 300px;" src="images/red-flower.jpg" alt="showing contrast effect">
</div>
<div>
<h3 style="filter: contrast(0.5); font-size: 2rem;>Contrast(0.38)</h3>
<h3>Contrast(120%)</h3>
<img style="filter: contrast(120%); width: 400px; height: 300px;" src="images/red-flower.jpg" alt="showing contrast effect">
</div>
<div>
<h3>Contrast(0.38)</h3>
<img style="filter: contrast(0.38); width: 400px; height: 300px;" src="images/red-flower.jpg" alt="showing contrast effect">
</div>
</body>
</html>
CSS 滤镜(filter) - 投影效果
阴影效果 是图像的模糊版本,在指定图像下方以特定颜色显示。
此属性类似于 box-shadow ,后者创建矩形阴影,而 drop-shadow 创建图像本身形状的阴影。
该函数可以将以下值作为参数:
offset-x:
- 必需参数。
- 阴影的水平偏移值。
- 指定为 <length> 值。
- 可以传递负值。将阴影放置在元素的左侧。
offset-y:
- 必需参数。
- 阴影的垂直偏移值。
- 指定为 <length> 值。
- 可以传递负值。将阴影置于元素上方。
blur-radius:
- 可选参数。
- 它是阴影的模糊半径。
- 指定为 <length> 值。
- 该值越大,模糊的阴影就越大。
- 如果未指定任何值,则默认值为 0。阴影将是清晰且不模糊的。
- 不允许使用负值。
color:
- 可选参数。
- 可以传递任何颜色值,例如颜色名称、十六进制值、RGB值等。
下面是一个示例:
<html>
<head>
</head>
<body>
<h2>Drop shadow effect</h2>
<div style="margin-bottom: 1in;">
<h3 style="filter: drop-shadow(20px 20px 20px blue); font-size: 3rem;">with blur radius</h3>
<img style="filter: drop-shadow(20px 20px 20px blue);" width="200px;" height="200px;" src="images/white-flower.jpg" alt="drop-shadow effect">
</div>
<div>
<h3 style="filter: drop-shadow(1rem 1rem green); font-size: 3rem;">without blur radius</h3>
<img style="filter: drop-shadow(1rem 1rem green);" width="200px;" height="200px;" src="images/white-flower.jpg" alt="drop-shadow effect">
</div>
</body>
</html>
CSS 滤镜(filter) - grayscale()
GrayScale() 函数用于将输入图像转换为灰度。
该函数可以将以下值作为参数:
amount: 指定为 <number> 或 <percentage> 值。
- 值等于 100%,使输入完全灰度化。
- 值等于 0% 或 0,不会对输入进行任何更改。
- 0% 到 100% 之间的值对效果具有线性乘数。
- 如果未传递任何参数,则默认值为 1。
下面是一个示例:
<html>
<head>
<style>
img {
width:200px;
height:200px;
}
</style>
</head>
<body>
<h2>Grayscale effect</h2>
<div>
<h3>grayscale - 0</h3>
<img style="filter: grayscale(0);" src="images/white-flower.jpg" alt="grayscale effect">
</div>
<div>
<h3>grayscale - 100</h3>
<img style="filter: grayscale(100);" src="images/white-flower.jpg" alt="grayscale effect">
</div>
<div>
<h3>grayscale - 70%</h3>
<img style="filter: grayscale(70%);" src="images/white-flower.jpg" alt="grayscale effect">
</div>
<div>
<h3>grayscale - 0.35</h3>
<img style="filter: grayscale(.35);" src="images/white-flower.jpg" alt="grayscale effect">
</div>
</body>
</html>
CSS 滤镜(filter) - hue-rotate()
hue-rotate() 函数用于旋转输入元素的色调及其内容。
该函数可以将以下值作为参数:
angle: 指定为<angle>值。
- 角度(angle)值可以以递延、梯度、弧度或转弯形式传递。
- 值等于 0deg,不会对输入进行任何更改。
- 正色调旋转,增加色调值。
- 负色调旋转,降低色调值。
- 初始值为 0。
注意:除了CSS filter 属性外,hue-rotate() 函数还可以与 CSS backdrop-filter 属性一起使用。
下面是一个示例:
<html>
<head>
<style>
img {
width:200px;
height:200px;
}
</style>
</head>
<body>
<h2>Hue-rotate effect</h2>
<div>
<h3>hue-rotate - 0.8turn</h3>
<img style="filter: hue-rotate(0.8turn);" src="images/white-flower.jpg" alt="hue-rotate effect">
</div>
<div>
<h3>hue-rotate - 65deg</h3>
<img style="filter: hue-rotate(65deg);" src="images/white-flower.jpg" alt="hue-rotate effect">
</div>
<div>
<h3>hue-rotate - 200grad</h3>
<img style="filter: hue-rotate(200grad);" src="images/white-flower.jpg" alt="hue-rotate effect">
</div>
<div>
<h3>hue-rotate - 3.5rad</h3>
<img style="filter: hue-rotate(3.5rad);" src="images/white-flower.jpg" alt="hue-rotate effect">
</div>
</body>
</html>
CSS 滤镜(filter) - invert()
invert() 属性用于反转输入图像中的颜色。
该函数可以将以下值作为参数:
amount:指定为 <number> 或 <percentage> 值。
- 值等于 100%,使输入完全反转。
- 值等于 0% 或 0,不会对输入进行任何更改。
- 0% 到 100% 之间的值对效果具有线性乘数。
- 初始值为 0。
下面是一个示例:
<html>
<head>
<style>
img {
width:200px;
height:200px;
}
</style>
</head>
<body>
<h2>Invert effect</h2>
<div>
<h3>invert - 0</h3>
<img style="filter: invert(0);" src="images/white-flower.jpg" alt="invert effect">
</div>
<div>
<h3>invert - 65%</h3>
<img style="filter: invert(65%);" src="images/white-flower.jpg" alt="invert effect">
</div>
<div>
<h3>invert - .45</h3>
<img style="filter: invert(0.45);" src="images/white-flower.jpg" alt="invert effect">
</div>
<div>
<h3>invert - 100</h3>
<img style="filter: invert(100);" src="images/white-flower.jpg" alt="invert effect">
</div>
</body>
</html>
CSS 滤镜(filter) - opacity()
opacity() 函数用于向输入元素添加透明度。
该函数可以将以下值作为参数:
amount:指定为 <number> 或 <percentage> 值。
- 值等于 0%,使输入完全透明。
- 值等于 100%,不会对输入进行任何更改。
- 0% 到 100% 之间的值对效果具有线性乘数。
- 初始值为 1。
下面是一个示例:
<html>
<head>
<style>
img {
width:200px;
height:200px;
}
</style>
</head>
<body>
<h2>Opacity effect</h2>
<div style="border: 2px solid black; width: 250px; height: 250px;">
<h3 style="filter: opacity(20%);">opacity - 0%</h3>
<img style="filter: opacity(0%);" src="images/white-flower.jpg" alt="opacity effect">
</div>
<div>
<h3 style="filter: opacity(0.55);">opacity - 55%</h3>
<img style="filter: opacity(55%);" src="images/white-flower.jpg" alt="opacity effect">
</div>
<div>
<h3>opacity - 100</h3>
<img style="filter: opacity(100);" src="images/white-flower.jpg" alt="opacity effect">
</div>
</body>
</html>
CSS 滤镜(filter) - saturate()
saturate() 函数是 CSS 提供的内置函数,用于使输入图像过饱和或去饱和。
该函数可以将以下值作为参数:
amount:指定为 <number> 或 <percentage> 值。
- 该值低于 100%,则图像的饱和度完全降低。
- 值超过 100%,使图像过饱和。
- 值等于 0%,使图像完全不饱和。
- 值等于 100%,对图像没有影响。
- 初始值为 1。
下面是一个示例:
<html>
<head>
<style>
img {
width:200px;
height:200px;
}
</style>
</head>
<body>
<h2>Saturate effect</h2>
<div>
<h3>saturate - 0%</h3>
<img style="filter: saturate(0%);" src="images/white-flower.jpg" alt="saturate effect">
</div>
<div>
<h3>saturate - 0.8</h3>
<img style="filter: saturate(0.8);" src="images/white-flower.jpg" alt="saturate effect">
</div>
<div>
<h3>saturate - 100%</h3>
<img style="filter: saturate(100%);" src="images/white-flower.jpg" alt="saturate effect">
</div>
<div>
<h3>saturate - 250%</h3>
<img style="filter: saturate(250%);" src="images/white-flower.jpg" alt="saturate effect">
</div>
</body>
</html>
CSS 滤镜(filter) - sepia()
sepia() 函数是 CSS 提供的内置函数,用于为输入图像添加棕褐色效果,看起来更明亮、更温暖。
该函数可以将以下值作为参数:
amount:指定为 <number> 或 <percentage> 值。
- 值等于 0%,不起作用。
- 值等于 100%,使图像完全棕褐色。
- 初始值为 0。
下面是一个示例:
<html>
<head>
<style>
img {
width:200px;
height:200px;
}
</style>
</head>
<body>
<h2>Sepia effect</h2>
<div>
<h3>sepia - 0%</h3>
<img style="filter: sepia(0%);" src="images/orange-flower.jpg" alt="sepia effect">
</div>
<div>
<h3>sepia - 0.8</h3>
<img style="filter: sepia(0.8);" src="images/orange-flower.jpg" alt="sepia effect">
</div>
<div>
<h3>sepia - 100%</h3>
<img style="filter: sepia(100%);" src="images/orange-flower.jpg" alt="sepia effect">
</div>
</body>
</html>
CSS 滤镜(filter) - URL()
此外,filter 属性还支持 url() 函数,该函数允许您使用 SVG 滤镜元素应用滤镜效果。例如:
filter: url(#myFilter);
当您想要应用内置滤镜函数不可用的更复杂的滤镜效果时,这非常有用。
下面是一个示例:
<html>
<head>
<style>
.myelement {
filter: url(#pink-flower);
}
div {
gap: 1.5rem;
max-width: 300px;
margin: 2em auto;
}
h3 {
margin-top: 0.5rem;
}
img {
width: 100%;
max-height: 200px;
object-fit: cover;
}
svg {
height: 0;
}
</style>
</head>
<body>
<!-- SVG Filter effect -->
<svg xmlns="http://www.w3.org/2000/svg">
<defs>
<filter id="pink-flower" x="0" y="0" width="100%" height="100%">
<feComponentTransfer>
<feFuncR type="linear" slope="1" intercept="0.5"></feFuncR>
<feFuncG type="linear" slope="0.5" intercept="0.5"></feFuncG>
<feFuncB type="linear" slope="0" intercept="1"></feFuncB>
</feComponentTransfer>
</filter>
</defs>
</svg>
<!-- Rest of HTML -->
<div>
<h3>filter: url() function</h3>
<div>
<img src="images/pink-flower.jpg" alt="pink flower" />
</div>
<div>
<img src="images/pink-flower.jpg" alt="blurred pink flower" class="myelement" />
</div>
</div>
</body>
</html>
CSS 滤镜(filter)的组合
可以在一个声明中使用多个 filter 函数。您只需要使用空格分隔每个函数。
注意:传递 filter 函数的顺序很重要,因为 filter 是按照声明的顺序应用的。例如,如果在棕褐色之后指定灰度函数,则图像将仅显示灰度。
下面是一个示例:
<html>
<head>
<style>
img {
width:200px;
height:200px;
}
</style>
</head>
<body>
<h2>Combination of filters</h2>
<div>
<h3 style="filter: brightness(150) opacity(50%); font-size: 2rem;">sepia & saturate</h3>
<img style="filter: sepia(0%) saturate(120%);" src="images/orange-flower.jpg" alt="sepia effect">
</div>
<div>
<h3 style="filter: contrast(150) opacity(50%); font-size: 2rem;>contrast & brightness</h3>
<img style="filter: contrast(0.8) brightness(150%);" src="images/orange-flower.jpg" alt="sepia effect">
</div>
<div>
<h3 style="filter: brightness(20) contrast(10%); font-size: 2rem;">blur & drop-shadow</h3>
<img style="filter: blur(2px) drop-shadow(20px 20px 15px rgb(169, 8, 35));" src="images/orange-flower.jpg" alt="sepia effect">
</div>
</body>
</html>