CSS-带有透明文本的按钮

时间:2018-09-13 18:29:19

标签: css css3

在我的网站中,我需要显示一个背景为白色的按钮,并且文本获取下面背景的颜色,该颜色可以是纯色或背景图像。

由于背景和按钮位置是动态的,所以我不能使用写在here上的解决方案。

请参见下面的示例。

我正在寻找仅css的解决方案。

感谢您的帮助。

Blue background purple background

1 个答案:

答案 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%);
}