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号