使用 CSS 标题后面的弱相同文本创建标题文本

Create heading text with a weak same text behind the heading with CSS

我真的不知道,怎么称呼它。我需要做这样的事情:

h2 {
text-shadow: 5px 5px #000;
}
<h2>My Text</h2>

所以有我的标题文字,以及背景上的相同文字。应该是auto-upgradable,所以当有人改"KONTAKT"的时候,背景文字也会自动改成一样的。

理想情况下,是否可以仅使用 CSS?

我想,这可以用 text-shadow 属性 来完成,但似乎不是。

使用文本作为数据属性,然后你可以在每个伪元素中使用它两次,轻松实现你想要的。

h2 {
  font-family:arial;
  position:relative;
  display:table;
  margin:auto;
  color:#bda000;
}

h2:before {
  content:attr(data-text);
  font-size:3em;
  opacity:0.25;
}
h2:after {
  content:attr(data-text);
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  left:0;
  right:0;
  text-align:center;
}
<h2 data-text="MY Text"></h2>

<h2 data-text="Another text"></h2>

您需要两段可以应用不同样式的文本。

要输入一次,您可以使用数据属性并通过 ::before 和 :: after 生成文本。 (可能的问题,HTML 中缺少文本)

带有数据属性的示例(我认为这不是最好的,因为缺少文本)

h2 {
  display: grid;
  height: 100px;
}

[data-text]::before,
[data-text]::after {
  content: attr(data-text);
  margin: auto;
  grid-column: 1;
  grid-row: 1;
  z-index: 1;
  color: brown;
  text-shadow: 0 0 2px white, 0 0 2px white, 0 0 2px white;
}

::before {
  z-index: 0;
  transform: scale(2.5);
  opacity: 0.25
}
<h2 data-text=" My text to show"></h2>

另一个示例,您需要在其中键入两次文本。

h2 {
  display: grid;
  height: 100px;
  justify-content: center;
  text-align: center;
  align-items: center;
  color: brown;
}

[data-text]::before {
  content: attr(data-text);
  position: absolute;
  grid-row: 1;
  grid-column: 1;
  left: 0;
  right: 0;
}

::before {
  z-index: 0;
  transform: scale(2.5);
  opacity: 0.25
}
<h2 data-text="My text to show">My text to show</h2>