css实现模糊镜效果及渐变字体和text-shadow冲突解决方案

今天主要介绍2个css特效,一个是css实现模糊镜效果,就是一个返回顶部标签,或者固底标签,网页滑动的时候看到网页滑动过的部分是模糊的。类型模糊镜子的效果,看哪里哪里背景是模糊的。还有就是解决一个渐变字体或者图片字体添加text-shadow,阴影会在文字顶部的问题。

css实现模糊镜子

实现高斯模糊,我们用filter的blur属性,但是高斯是高斯元素本身。其实有个高斯底部的属性,叫

css 复制代码
backdrop-filter

就可以轻松实现刚刚说的效果。 注意:backdrop-filter的当前背景需要一点点透明,不然看不到底部了。实现案例如下:

css 复制代码
<style>
div.background {
  background: lightblue url(klematis.jpg) no-repeat center;
  background-size: cover;
  align-items: center;
  display: flex;
  justify-content: center;
  height: 400px;
  width: 400px;
}

div.transbox {
  background-color: rgba(255, 255, 255, 0.4);
  -webkit-backdrop-filter: blur(5px);
  backdrop-filter: blur(5px);
  padding: 20px;
  margin: 30px;
  font-weight: bold;
}
</style>

<h1>haorooms text backdrop-filte</h1>
<div class="background">
  <div class="transbox">
    <p>backdrop-filter: blur(5px)</p>
  </div>
</div>

backdrop-filter的属性,现在浏览器基本都兼容。但是IE,UC,QQ,百度等浏览器可能不兼容,需要兼容的化可以用替代方案。

延伸,实现图片局部模糊效果

该方案不适用于网页,仅适用于网页中某个部分需要这种实现。

实现思路,背景固定,表层背景继承外层背景,表层就可以进行模糊了,代码实现如下:

css 复制代码
.box { 
    width: 256px; height: 191px; 
    background: url(//haoroomstest.jpg) no-repeat fixed; 
    position: relative; 
    overflow: hidden;
}
.haoroomsblur{ 
    width: 100px; height: 100px;
    background: inherit; 
    -webkit-filter: blur(5px); -moz-filter: blur(5px); filter: blur(5px); 
    position: absolute; 
    overflow: hidden;
}

<div class="box">
    <div  class="haoroomsblur"></div>
</div>

text-shadow和文字颜色渐变冲突解决方案

问题:

css 复制代码
.front-text{
width: 325px;
height: 105px;
font-size: 140px;
font-family: PingFang SC;
font-weight: bold;
color: #FFFFFF;
text-shadow: 0px 4px 0px #D52A03;
background: linear-gradient(180deg, #FFFFFF 0%, #FFE579 100%);
-webkit-background-clip: text;
 color: transparent;
}

发现text-shadow在文字顶部,挡住了文字。

解决方案

css 复制代码
<div text="haoroomsblog">haoroomsblog</div>

 div {
      text-align: center;
      font-size: 80px;
      position: relative;
      color: #f6130c;
      // 设置文字阴影
      text-shadow: 0 4px 0 #bc6d05;
      font-weight: bold;
    }

    div::before {
      content: attr(text);
      position: absolute;
      z-index: 10;
      color: #f6130c;
      // 渐变样式
      background-image: linear-gradient(360deg, #f6130c 0%, #f87052 100%);
      -webkit-background-clip: text;
      color: transparent;
      // 去除继承父级样式
      text-shadow: none;
}

一般是通过分层来解决的,放text-shadow在底层,真正的渐变文字用伪元素来实现,当然,动态背景可以也放到attr里面,css可以之间拿attr里面的东西,这样就可以实现动态配置的渐变字体了。

相关推荐
lilian23313 小时前
Harmony os 技术实战|拼豆制图27:用单字符编码承载 50 张 70×70 图纸
前端·数据库·华为·harmonyos
CarIise14 小时前
CSS选择器与样式关联
前端·css·tensorflow
里欧跑得慢15 小时前
CSS 模块化架构的演进:BEM、CSS Modules 到 CSS-in-JS 的反思
前端·css·flutter·web·css-in-js
IT_陈寒15 小时前
Vue的computed属性把我坑惨了,原来我一直用错姿势
前端·人工智能·后端
小灰灰搞电子16 小时前
Rust+Slint 实现温度计源码分享
前端·rust·slint
计算机魔术师16 小时前
面壁智能 OpenBMB 推出 MathForm,面向 Lean 4 数学自动形式化的开源框架、数据集与模型
前端
NeilCarmack16 小时前
Deepseek-harness增加桌面版端序列:第 2 讲 · spawn Electron:当前进程如何“交棒“
前端·javascript·electron
上海魁鲸科技有限公司17 小时前
APS高级排产系统到底有什么用?一文讲清功能、选型与落地建议
前端·microsoft·excel
陈随易17 小时前
Bun v1.4 更新总结:把浏览器、图片、定时任务和工程工具都装进一个运行时
前端·后端·程序员
东风破_19 小时前
TypeScript 高级类型进阶:keyof、Exclude、Record 与类型组合思想
前端·后端·typescript