首页 > 其他分享 >请使用scss写一个util,用于方便创建毛玻璃特效的背景图片,支持文字在图片上显示,不被遮挡

请使用scss写一个util,用于方便创建毛玻璃特效的背景图片,支持文字在图片上显示,不被遮挡

时间:2024-01-14 23:14:43浏览次数:36  
标签:scss 文字 image util 背景图片 background content 毛玻璃

下面是一个使用 SCSS 编写的 util,用于创建毛玻璃特效的背景图片,并确保文字不被遮挡。该 util 使用 ::before 伪元素来创建毛玻璃效果,同时在伪元素上添加文字,以确保文字显示在图片上方。

@mixin glassBackground($imageUrl, $textColor: #fff, $blurAmount: 10px) {
  position: relative;
  overflow: hidden;

  &::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: -1;
    background-image: url($imageUrl);
    background-size: cover;
    filter: blur($blurAmount);
  }

  > * {
    position: relative;
    z-index: 1;
    color: $textColor;
  }
}

使用方法:

.container {
  width: 400px;
  height: 200px;
  @include glassBackground('path/to/your/image.jpg', $textColor: #fff, $blurAmount: 10px);

  // 其他样式...
  
  .content {
    padding: 20px;
  }
}

在这个例子中,.container 类应用了 glassBackground mixin,通过传递背景图片的路径、文字颜色和模糊程度等参数,创建了一个带有毛玻璃特效的背景。.content 类中的内容会显示在毛玻璃效果之上,确保文字不被遮挡。

在SCSS中,创建一个毛玻璃特效背景并确保文字不被遮挡通常涉及到使用CSS滤镜(如模糊效果)和布局技巧。以下是一个简化的SCSS实用工具函数和混合宏示例,用于生成带有毛玻璃背景的容器,并确保文字内容始终保持可读:

// 定义毛玻璃效果的混合宏
@mixin glass-morph($blur: 5px) {
  background-color: rgba(255, 255, 255, 0.8); // 设置一个半透明白色作为底层颜色以增强对比度
  backdrop-filter: blur($blur); // 使用backdrop-filter属性实现毛玻璃效果

  // 确保内容区域的文字不会被背景模糊效果遮挡
  & > * {
    position: relative;
    z-index: 1; // 设置文字或内容元素的层级高于背景模糊效果
  }
}

// 使用混合宏创建类
.glass-container {
  @include glass-morph(10px); // 调用混合宏并设置模糊程度为10像素
  display: flex;
  align-items: center;
  justify-content: center;
  color: #333; // 文字颜色
  padding: 2rem;
  text-align: center;
  
  // 图片作为背景,可以使用伪元素或其他方式插入
  &:before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-image: url(your-background-image-url);
    background-size: cover;
    opacity: 0.6; // 可调整图片透明度以适应毛玻璃效果
    z-index: -1; // 图片置于文字下方
  }
}

请将 your-background-image-url 替换为实际的背景图片URL。这个示例中,.glass-container 类会应用毛玻璃效果,并且其内的任何文本内容都会保持清晰可见,不受背景模糊的影响。同时,通过:before 伪元素来设定背景图片,确保它位于毛玻璃背景之下。

标签:scss,文字,image,util,背景图片,background,content,毛玻璃
From: https://www.cnblogs.com/longmo666/p/17964405

相关文章

  • 通过 KernelUtil.dll 劫持 QQ / TIM 客户端 QQClientkey / QQKey 详细教程(附源码)
    前言由于QQ9.7.20版本后已经不能通过模拟网页快捷登录来截取QQClientkey/QQKey,估计是针对访问的程序做了限制,然而经过多方面测试,诸多的地区、环境、机器也针对这种获取方法做了相应的措施,导致模拟网页快捷登录来截取数据被彻底的和谐,为了解决这个问题我们只能更改思路对......
  • DateUtil用法
    DateUtil.getdayDiff(DateUtil.strToDate(filledDate),newDate())这行代码也包含了几个部分:DateUtil:假设DateUtil是一个日期工具类。strToDate(filledDate):假设strToDate()是DateUtil类中的一个方法,用于将字符串转换为Date对象。filledDate是一个字符串类型的变量。newDate(......
  • Handler创建Dispatcher请求调用执行Utility
    文章目录应用场景Handler创建Dispatcher请求创建响应1、创建响应工程2、书写响应代码3、打成jar包4、将导出的jar包放入DispatcherClient\lib下。5、修改DispatcherClient\conf下Service.properties文件6、修改Module\conf下translator.xml文件7、书写bomchange.bat,并......
  • scss样式穿透>>>或/deep/或::v-deep
    参考:https://www.jianshu.com/p/7f38b0aa6fb7<stylescoped>.menuItem{//常用方式1,2>>>.ant-input{border-radius:50px;}/deep/.ant-input{font-size:14px;}//在scss,less,sass等解析器中::v-deep.ant-input{colo......
  • idea 项目加载 全线飘红, @Service飘红,连 import java.util.List; 也飘红,终极解决方案
    常规方案:1、maven,检查maven配置,重新加载maven依赖,重新加载项目,把maven的本地私库删了重新下载2、检查idea配置,jdk配置,加载的项目的配置,idea清理缓存重启,等等3、是否更新了其他idea配置,比如git忽略文件里是否添加了*.class 4、重新安装idea5、及其他以上方案自行百度,都可以......
  • java浅拷贝BeanUtils.copyProperties引发的RPC异常 | 京东物流技术团队
    背景近期参与了一个攻坚项目,前期因为其他流程原因,测试时间已经耽搁了好几天了,本以为已经解决了卡点,后续流程应该顺顺利利的,没想到人在地铁上,bug从咚咚来~没有任何修改的服务接口,抛出异常:java.lang.ClassCastException:java.util.HashMapcannotbecasttocn.xxx.xxx.xxx.xxx.Ba......
  • java浅拷贝BeanUtils.copyProperties引发的RPC异常 | 京东物流技术团队
    背景近期参与了一个攻坚项目,前期因为其他流程原因,测试时间已经耽搁了好几天了,本以为已经解决了卡点,后续流程应该顺顺利利的,没想到人在地铁上,bug从咚咚来~没有任何修改的服务接口,抛出异常:java.lang.ClassCastException:java.util.HashMapcannotbecasttocn.xxx.xxx.xxx.xx......
  • BigDecimalUtil 工具类
    packagecom.yintn.cbms.basicinfo.api.utils;importlombok.experimental.UtilityClass;importjava.math.BigDecimal;importjava.math.BigInteger;importjava.math.RoundingMode;importjava.util.Optional;@UtilityClasspublicclassBigDecimalUtil{pu......
  • flutter中背景图片(动态图片)
    单页面设置背景图片使用 Container 组件和 decoration 属性:优点:简单易用,适用于大多数情况下的页面背景设置。缺点:无法控制背景图片的位置和层级。classMyBookextendsStatelessWidget{constMyBook({super.key});@overrideWidgetbuild(BuildContextcontex......
  • of type [class java.lang.String] to [class java.util.Date]
    报错:javax.el.ELException:Cannotconvert[2023-11-1422:35:34]oftype[classjava.lang.String]to[classjava.util.Date]  问题分析:相应数据的类型不正确bean层写的是: privateStringcreateDate; jsp写的是:<fmt:formatDatevalue="${file.createDate}"patte......