在我的网站中,我需要显示一个背景为白色的按钮,并且文本获取下面背景的颜色,该颜色可以是纯色或背景图像。
由于背景和按钮位置是动态的,所以我不能使用写在here上的解决方案。
请参见下面的示例。
我正在寻找仅css
的解决方案。
感谢您的帮助。
答案 0 :(得分:5)
您可以通过使用伪元素将按钮的背景添加到文本前面,然后在按钮(screen
)上使用mix-blend-mode
和伪元素({{ 1}})来创建抠图效果。
注意:仅当按钮的背景为白色时,此选项才有效。
注意::IE和Edge不支持color-burn
。
mix-blend-mode
.button {
position: relative;
padding: 0.5em 1em;
font-size: 1.2em;
border: none;
background: none;
outline: none;
color: black;
mix-blend-mode: screen;
}
.button::before {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
background: white;
border-radius: 0.3em;
content: '';
mix-blend-mode: color-burn;
}
.bg {
padding: 2em;
}
.bg1 {
background: purple;
}
.bg2 {
background: linear-gradient(to bottom, gold 50%, silver 50%);
}