之前在逛Apple Store时看到了下面的UI:

交互图标非常圆滑上手也很舒服,虽然背景底色本就是白底,但是只依赖css能不能使  “+” 穿透背景看到底色 ?

大致思路如下:

一开始的思路是将内容主体呈现为透明色,再赋予子元素一个 固定宽高 和 box-shadow: 0 0 0 2021px #fff; 父容器 overflow: hidden; 

通过足够大的不模糊阴影实现一个假的背景色,内容主体部分仍然为透明,造成一种伪穿透的效果。

但这种方法只限于规则图形,真正应用到字符上还是无法生效。


最终只能回到最原始的方法,将字体颜色调成与背景色一致,达到三个层级伪穿透的效果。

但我一开始想做出的效果就是字符穿透看到渐变色的背景或者图片。似乎与脑中的transparent和overflow没有半毛关系。

于是我找到了这篇文章 CSS题目系列(4) - 文字穿透遮罩层

原来webkit内核提供了方法实现这一效果:

-webkit-text-fill-color: transparent
-webkit-background-clip: text


( 以下部分来自转载内容 )

-webkit-text-fill-color: transparent

将文字颜色变成透明,但是经过尝试,发现使用color:transparent效果也一样,应该是浏览器为向后兼容所拟定的一个新属性,因为如果不支持文字添加背景,但又通过color:transparent将文字变成了透明,文字就显示不出来了。

-webkit-background-clip: text

背景被裁剪为文字的前景色。


代码与最终实现效果:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>镂空测试</title>
<style>
*, body, html {
padding: 0;
margin: 0;
overflow: hidden;
}
.container,h1{
background:url("./bgTemp.jpg");
background-size: cover;
background-repeat: no-repeat;
}
.container::after{
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
.container h1 {
position: absolute;
white-space: pre-wrap;
top: 28%;
left: 28%;
width: 100%;
height: 100%;
background-position: -28vw -28vh;
}
.container{
position: relative;
width: 100%;
height: 100vh;
background-position: 0 0;
}
.container::after{
content: '';
background: rgba(0,0,0,0.7);
}
h1{
z-index: 2;
font-size: 180px;
user-select: none;
-webkit-text-fill-color: transparent;
-webkit-background-clip: text;
-webkit-text-stroke: .8px rgba(255, 255, 255, .8);
}
</style>
</head>
<body> <div class="container">
<h1>带恶人97z</h1>
</div> </body>
</html>

- END -

CSS002. 字体穿透蒙层(用img设置字体的color)的更多相关文章

  1. Qt应用程序中设置字体

    Qt应用程序中设置字体 应用程序中经常需要设置字体,例如office软件或者是其他的编辑器软件等等.这里主要涉及到如下几个概念:字体,字号以及风格(例如:粗体,斜体,下划线等等).Qt里面也有对应的类 ...

  2. 我给女朋友讲编程CSS系列(3) CSS如何设置字体的类型、大小、颜色,如何使用火狐浏览器的Firebug插件查看网页的字体

    一.CSS如何设置字体的类型.大小.颜色 设计网页时,一般设置body的字体,让其他标签继承body的字体,这样设置特别方便,但是标题标签h1到h6和表单标签(input类型)是没有继承body的字体 ...

  3. intellij idea设置(字体大小、背景)

    1. 配置信息说明 Intellij Idea: 2017.2.5 2.具体设置 <1> 设置主题背景.字体大小 File---->Settings----->Appearan ...

  4. 设置 tableview 的背景颜色,总是有蒙层

    1.给tableview添加了背景图片后, cell 总是有一层蒙层蒙着,很阴暗. 2.实验以后才发现背景图片被放在了 cell 的后面.

  5. iOS开发之实现半透明蒙层背景效果[用于下拉菜单页和分享页]

    郝萌主倾心贡献.尊重作者的劳动成果,请勿转载. 假设文章对您有所帮助.欢迎给作者捐赠.支持郝萌主,捐赠数额任意.重在心意^_^ 我要捐赠: 点击捐赠 Cocos2d-X源代码下载:点我传送 游戏官方下 ...

  6. ABP(现代ASP.NET样板开发框架)系列之22、ABP展现层——导航栏设置

    点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之22.ABP展现层——导航栏设置 ABP是“ASP.NET Boilerplate Project (ASP.NE ...

  7. 給eclipse添加字体,设置字体

    问题? 一般情况的更换字体就是:1.首先打开Window ---> Preferences ---> General ---> Appearance ---> Colors a ...

  8. 根据屏幕大小动态设置字体rem

    1.根据屏幕大小动态设置字体rem var docEl = document.documentElement, //当设备的方向变化(设备横向持或纵向持)此事件被触发.绑定此事件时, //注意现在当浏 ...

  9. C#设置字体(FontDIalog)、颜色(ColorDialog)对话框控件

    设置字体控件为FontDialog,设置颜色的控件为ColorDialog.这两个控件的使用和OpenFileDialog(打开文件)及FolderBroswerDialog(打开文件夹)的使用类似. ...

随机推荐

  1. Object.defineProperty 中 get set 用法

    就是两个函数,只要搞清楚get.set的执行时机就可以了.执行时机如下代码: <!DOCTYPE html> <html lang="en"> <he ...

  2. 【网站公告】避免反对百度的限制措施:百度搜索过来的访问会自动禁用js权限

    今天下午百度联系我们,发现通过百度搜索访问我们网站的博文时会出现下面反对百度的画面,让我们今天彻底处理好,保证不再出现这种情况. 我们排查后发现是这位博主申请了js权限,添加了下面的反对百度的脚本: ...

  3. 案例分享:Qt政务标签设计器,标签排版软件定制与打印

    需求   1.标签设计器:  2.具备文字排版功能:  3.支持六种排版格式:  4.排版后可以输出打印(demo中不包含):  5.排版后可以输出标签的指定协议文本FBD格式:  6.可以调整对应标 ...

  4. Linux部署PgSQL数据库

    1.安装: yum install postgresql-server -y postgresql-setup initdb cd /var/lib/pgsql/data 2.进入 /var/lib/ ...

  5. ASP.NET Core 修改开源协议为MIT,.NET全平台 MIT协议开源了

    2021年7月23日,.NET开发团队完成了所有的.NET平台的相关框架的MIT协议更改,我们可以通过 https://github.com/dotnet/aspnetcore/issues/1887 ...

  6. Linux放大缩小字体的快捷键

    linux终端窗口字体缩放快捷键 环境:linux, 打开终端, 'ctrl' + '-'字体缩小,一行显示更多的内容 'ctrl' + 'shift' + '+'字体变大 ctl+shift+(+) ...

  7. 【HMC Core 6.0全球上线】图形计算服务新插件,助力高画质3D手游创新

    HMS Core 6.0已于7月15日全球上线,本次新版本向广大开发者开放了众多全新能力与技术.其中华为图形计算服务(CG Kit)开放了体积雾插件和流体插件,为3D手游画面的提升提供了坚实的技术基础 ...

  8. SQL Server中的distinct(不允许重复)

    参考网址:https://blog.csdn.net/tswc_byy/article/details/81835023 一.建库和建表create database scortuse scortcr ...

  9. 什么是TCP,什么是UDP,它们两者的区别? 三次握手

    TCP: 定义: TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的.可靠的.基于字节流的传输层通信协议,由IETF的RFC 793定义. TCP编程的 ...

  10. 1、Task的优势

    1.Task的优势 ThreadPool相比Thread来说具备了很多优势,但是ThreadPool却又存在一些使用上的不方便.比如: ◆ ThreadPool不支持线程的取消.完成.失败通知等交互性 ...