文章目录
- filter 滤镜
- blur() 模糊度
- 例子 渐变光晕
- brightness() 元素亮度
- contrast() 对比度
- grayscale() 元素灰度
- hue-rorate() 色相
- opacity() 透明度
- invert() 反转颜色
- saturate() 饱和度
- backdrop-filter 蒙版,滤镜
- 例子 卷轴展开
filter 滤镜
动图为效果添加前后对比。
经常用ps的应该知道这些的属性的含义,可以自己试一试看看不同参数都有什么样的效果。
blur() 模糊度
作用是调整模糊度,单位像素。
filter: blur(10px);
例子 渐变光晕
其实是两个相同的div叠加,其中一个加上了模糊度。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
*{
margin:0;
padding:0;
}
body{
display: flex;
height:100vh;
justify-content: center;
align-items: center;
background: #000;
}
.box{
width:300px;
height: 400px;
background: linear-gradient(30deg,#3498db,#9b59b6);
border-radius: 5px;
position: relative;
}
.box::before{
content:"";
width:120%;
height: 120%;
position: absolute;
background: red;
z-index: -1;
top:-10%;
left:-10%;
background: linear-gradient(30deg,#3498db,#9b59b6);
filter:blur(70px);
}
</style>
</head>
<body>
<class class="box">
</class>
</body>
</html>
brightness() 元素亮度
作用是调整元素的亮度,单位百分数或小数,小于1暗,大于亮。
filter: brightness(0.5);
contrast() 对比度
作用是调整元素的对比度,单位是百分数。
大于1提高对比度,小于1降低对比度。
这里加个图片吧,更好的展示此效果。
filter: contrast(2);
grayscale() 元素灰度
作用是调整元素的灰度,单位是百分数。
最大是百分之百。
网站需要在特殊节日变成灰色就可以给body加上这个属性。 让整个网站变成灰色调。
filter: grayscale(1);
hue-rorate() 色相
调整元素的色相,单位是角度。
filter: hue-rotate(80deg);
opacity() 透明度
调整元素的透明度,单位是百分数。
filter: opacity(0.5);
invert() 反转颜色
invert() 调整元素的反转输入颜色,单位是百分数。
filter: invert(1);
saturate() 饱和度
改变图像饱和度。值为 0% 则是完全不饱和,值为 100% 则图像无变化。超过 100% 则增加饱和度。
filter: saturate(2);
backdrop-filter 蒙版,滤镜
与filter用法相同,只不过其是对其后面元素起作用的。
可以理解为filter作用于物体,而backdrop-filter相当于一个幕布,遮住的才会变化。还是不理解没关系,看下面的例子就明白了。
例子 卷轴展开
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
*{
margin:0;
padding:0;
}
body{
display: flex;
height:100vh;
justify-content: center;
align-items: center;
}
.box{
display: flex;
width:60%;
object-fit: cover;
object-position: center top;
position: relative;
}
.box img{
height:600px;
width:100%;
object-fit: cover;
}
.box::before{
content:"";
width:100%;
height: 100%;
background: rgb(255, 255, 255, 0.4);
position: absolute;
right:0;
backdrop-filter: blur(10px);
border-left: 5px solid #000;
transition: 5s ease;
}
.box:hover::before{
width: 0;
border-left: 10px solid #000;
}
</style>
</head>
<body>
<div class="box">
<img src="1.jpg" alt="">
</div>
</body>
</html>