问题描述
我正在尝试创建一种布局,其中某些字母是透明的,后面带有白色背景,但是透明性一直显示到渐变背景,直到HTML层次结构的多个层次。基本上,我正在尝试实现以下目标:
这是我当前的HTML和CSS:
.header {
background-image: linear-gradient(135deg,#2121CC,#1E0674);
}
.header>div {
align-items: center;
display: flex;
justify-content: space-between;
margin: auto;
max-width: 100rem;
padding: 1rem 2rem;
}
.header>div>h1 {
display: flex;
}
.header>div>h1>span {
background: #FFF;
color: transparent;
display: block;
margin-right: 1rem;
-webkit-text-fill-color: transparent;
}
<div class="header">
<div>
<h1>
<span>A</span>
<span>B</span>
</h1>
</div>
</div>
我正在参考以下CSS Tricks文章,了解如何执行此操作:
https://css-tricks.com/how-to-do-knockout-text/
但是对于我而言,问题似乎是我希望文本透明并从白色背景一直显示到HTML层次结构的三个层次的.header
元素。
仅CSS可以做到吗?如果可以,怎么办?我尝试了所有我能想到的一切,但没有成功。谢谢。
编辑:值得一提的是,CSS Tricks文章使用了-webkit-background-clip: text;
属性,但是当我将其添加到CSS中时,它没有任何改变,当您将其删除时检查浏览器中的相应元素。换句话说,我认为它不受支持,实际上已经做了任何事情(我可能错了)。
解决方法
您可以看看mix-blend-mode
:
select t.*
from t
where (select count(*) from t where status = 'W') > 5;
.header {
background-image: linear-gradient(135deg,red,#2121CC,#1E0674,yellow);
}
.header>div {
align-items: center;
display: flex;
justify-content: space-between;
margin: auto;
max-width: 100rem;
padding: 1rem 2rem;
}
.header>div>h1 {
display: flex;
}
.header>div>h1>span {
background: #FFF;
display: block;
margin-right: 1rem;
mix-blend-mode:screen
}