首页 > 解决方案 > 通过向每个文本元素添加一个类来重新创建文本效果

问题描述

我想通过为每个文本元素添加一个类来获得这种漂亮的文本效果:

在此处输入图像描述

这是上图的原始代码。

https://codepen.io/pixy-dixy/pen/GRNwmWv

这段代码的问题是他使用属性来创建这样的文本效果,但我想使用一个可以添加到任何文本元素的简单类。

我试图创建该类但没有运气:

这是我到目前为止所尝试的:

.effect {
  display: flex;
  align-items: center;
  justify-content: center;
  align-content: center;
  text-align: center;
  font-weight: 400;
  width: 100%;
  text-align: center;
  font-size: 5vw;
  color: rgba(255, 255, 255, 0.5);
  position: absolute;
  z-index: 3;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-image: linear-gradient(-45deg, red 25%, white 25%, white 50%, red 50%, red 75.2%, white 75%, white);
  background-size: 10px 10px;
  background-position: 0 0;
  mix-blend-mode: overlay;
  font-variation-settings: "GLOW" 1000;
  filter: invert(0.7) grayscale(1);
  position: absolute;
  z-index: 2;
  text-shadow: 1px 1px 1px rgba(255, 255, 255, 0.2), 2px 2px 1px rgba(255, 255, 255, 0.3), 1px 1px 1px rgba(138, 0, 0, 0.53), 1px 1px 1px white;
}
<h1 class="effect">candy</h1>

有没有通过添加类来拥有文本元素的解决方案?

标签: htmlcss

解决方案


text-shadow不能很好地与background-clip:text. 使用阴影并调整代码如下:

.effect {
  font-weight: 400;
  text-align: center;
  font-size: 150px;
  color: transparent;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-image: repeating-linear-gradient(-45deg, #c50000 0 5px, #c3c0c0 0 10px);
  filter:drop-shadow(4px 4px 4px rgba(0,0,0,0.8));
}
<h1 class="effect">candy</h1>


推荐阅读