blur()函数通过filter属性对元素及其内容应用高斯模糊,而backdrop-filter: blur()仅模糊元素背后的内容,常用于毛玻璃效果;两者在作用对象、视觉表现和应用场景上有本质区别,需根据需求选择。

blur()
filter
要使用
blur()
filter
.my-element {
filter: blur(radius);
}这里的
radius
px
blur(5px)
blur(20px)
这个函数会作用于整个元素,包括它的内容、边框和背景。这意味着如果你对一个包含文本的
div
blur()
立即学习“前端免费学习笔记(深入)”;
示例:
<div class="blurred-box">
这是一段将被模糊的文本。
<img src="your-image.jpg" alt="模糊图片">
</div>
<style>
.blurred-box {
width: 300px;
height: 200px;
background-color: #f0f0f0;
border: 1px solid #ccc;
display: flex;
justify-content: center;
align-items: center;
font-size: 18px;
color: #333;
/* 应用高斯模糊 */
filter: blur(5px); /* 5像素的模糊半径 */
}
.blurred-box img {
max-width: 100%;
height: auto;
display: block;
margin-top: 10px;
}
</style>在这个例子中,
blurred-box
这是很多开发者初次接触模糊效果时容易混淆的地方。我个人觉得,理解这两者的区别是掌握模糊效果的关键一步,不然很容易出现意想不到的视觉结果。
filter: blur()
而
backdrop-filter: blur()
关键区别总结:
filter: blur()
backdrop-filter: blur()
示例对比:
<div class="background-image"></div>
<div class="filter-blur-example">
Filter Blur
</div>
<div class="backdrop-filter-blur-example">
Backdrop Filter Blur
</div>
<style>
.background-image {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: url('https://via.placeholder.com/1500/FF0000/FFFFFF?text=Background') no-repeat center center/cover; /* 替换为你的背景图 */
z-index: 1;
}
.filter-blur-example, .backdrop-filter-blur-example {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 200px;
height: 100px;
background-color: rgba(255, 255, 255, 0.5); /* 半透明背景 */
border: 1px solid #fff;
display: flex;
justify-content: center;
align-items: center;
font-size: 20px;
color: #333;
z-index: 2;
margin-top: -80px; /* 调整位置 */
}
.filter-blur-example {
filter: blur(8px); /* 模糊自身 */
margin-left: -150px; /* 调整位置 */
}
.backdrop-filter-blur-example {
backdrop-filter: blur(8px); /* 模糊它下面的内容 */
margin-left: 150px; /* 调整位置 */
}
</style>在这个例子中,
filter-blur-example
backdrop-filter-blur-example
background-image
blur()
blur()
性能开销: 这是最主要的考量。
blur()
blur()
文本可读性:
blur()
backdrop-filter: blur()
渲染边界:
blur()
overflow: hidden
浏览器兼容性: 尽管现代浏览器对
filter
backdrop-filter
@supports
与transform
filter: blur()
transform
scale
rotate
总的来说,在使用
blur()
blur()
鼠标悬停(Hover)模糊效果: 这是最常见的应用之一。当用户鼠标悬停在图片或卡片上时,背景或图片逐渐模糊,同时可能显示清晰的文字或操作按钮,以此来引导用户交互。
<div class="card">
<img src="https://via.placeholder.com/300x200?text=Image" alt="Placeholder" class="card-img">
<div class="card-overlay">
<h3>详情</h3>
<p>点击查看更多内容</p>
</div>
</div>
<style>
.card {
position: relative;
width: 300px;
height: 200px;
overflow: hidden; /* 确保模糊效果不溢出 */
cursor: pointer;
}
.card-img {
width: 100%;
height: 100%;
object-fit: cover;
transition: filter 0.3s ease-in-out; /* 为模糊效果添加过渡 */
}
.card-overlay {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.6);
color: #fff;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
opacity: 0; /* 默认隐藏 */
transition: opacity 0.3s ease-in-out;
pointer-events: none; /* 确保不阻挡鼠标事件 */
}
.card:hover .card-img {
filter: blur(5px); /* 悬停时图片模糊 */
}
.card:hover .card-overlay {
opacity: 1; /* 悬停时覆盖层显示 */
}
</style>结合transition
animation
.modal-background {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: url('your-page-background.jpg') no-repeat center center/cover;
filter: blur(0px); /* 初始不模糊 */
transition: filter 0.5s ease-out; /* 添加过渡效果 */
z-index: 99;
}
.modal-open .modal-background {
filter: blur(10px); /* 模态框打开时模糊 */
}配合JavaScript添加/移除
modal-open
结合clip-path
mask-image
clip-path
mask-image
<div class="creative-blur-area">
<img src="https://via.placeholder.com/400x300?text=Creative+Blur" alt="Creative Blur">
</div>
<style>
.creative-blur-area img {
width: 100%;
height: 100%;
object-fit: cover;
/* 使用clip-path创建一个圆形区域并模糊 */
clip-path: circle(50% at 50% 50%);
filter: blur(8px);
}
/* 或者使用mask-image实现渐变模糊 */
/*
.creative-blur-area img {
width: 100%;
height: 100%;
object-fit: cover;
mask-image: linear-gradient(to right, transparent, black 50%, transparent);
filter: blur(8px);
}
*/
</style>与transform
filter: blur()
// 伪代码,实际需要更复杂的滚动监听和节流
window.addEventListener('scroll', () => {
const scrollY = window.scrollY;
const blurAmount = Math.min(scrollY / 100, 10); // 滚动100px达到最大10px模糊
document.querySelector('.parallax-background').style.filter = `blur(${blurAmount}px)`;
});通过这些组合,
blur()
以上就是CSS中blur()函数怎么用?通过blur()为元素添加高斯模糊以增强视觉效果的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号