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里面的东西,这样就可以实现动态配置的渐变字体了。

相关推荐
摸鱼的春哥几秒前
春哥的Agent通关秘籍07:5分钟实现文件归类助手【实战】
前端·javascript·后端
念念不忘 必有回响4 分钟前
viepress:vue组件展示和源码功能
前端·javascript·vue.js
C澒9 分钟前
多场景多角色前端架构方案:基于页面协议化与模块标准化的通用能力沉淀
前端·架构·系统架构·前端框架
崔庆才丨静觅11 分钟前
稳定好用的 ADSL 拨号代理,就这家了!
前端
江湖有缘12 分钟前
Docker部署music-tag-web音乐标签编辑器
前端·docker·编辑器
恋猫de小郭1 小时前
Flutter Zero 是什么?它的出现有什么意义?为什么你需要了解下?
android·前端·flutter
崔庆才丨静觅8 小时前
hCaptcha 验证码图像识别 API 对接教程
前端
passerby60619 小时前
完成前端时间处理的另一块版图
前端·github·web components
掘了9 小时前
「2025 年终总结」在所有失去的人中,我最怀念我自己
前端·后端·年终总结
崔庆才丨静觅9 小时前
实用免费的 Short URL 短链接 API 对接说明
前端