CSS - 底部边框使用 :after pseudo-element 这是文本的长度

CSS - bottom border using :after pseudo-element that's the length of text

我有一个 <h3>,我需要使用 ::after 伪元素对其进行样式设置以在其后面包含红色底部边框。

目标: 红色底部边框应该只显示文本的长度。

结果: 我现在最接近的,边框跨越 parent 宽度。

<h3><span class="headingLine">Lorem Ipsum Dolor Sit Amet</span></h3>

span.headingLine:after{
  position: absolute;
  content: '';
  border-bottom: 7px solid red;
  z-index: -1;
  left: 0;
  width: 100%; /* If I remove the width 100%, the red doesn't show */
  bottom: 15px;
  display: inline-block;
}

如何调整标记/CSS,使红色边框仅跨越文本的宽度?

可能会有多行文本(小浏览器window/更长的标题)

您的方法过于复杂,只需使用渐变背景即可:

h3 {
  border: solid 1px
}

span {
  background: linear-gradient(0deg, red 6px, transparent 7px) 0 1.1em
}
<h3><span class="headingLine">Lorem Ipsum Dolor Sit Amet</span></h3>
<h3><span class="headingLine">Lorem Ipsum Dolor Sit Amet Dolor Sit Amet Dolor Sit Amet Dolor Sit Amet Dolor Sit Amet Dolor Sit Amet</span></h3>