我正在实现一个设计,其中包含语义标题(h3、h4 等)的元素,是全宽块元素,后面是一条垂直居中的水平线,它扩展了标题的整个宽度:
我知道我可以通过将每个标头包装在 a 中<div>
并在其后插入另一个块级元素来解决这个问题,但不希望这样污染我的 HTML。我的第一个倾向是::after
在标题上使用一个元素,如下所示:
.line-header::after {
content:'\00a0';
display: inline-block;
float: right;
width: 55%;
margin-top: -12px;
border-bottom: 1px solid gray;
}
但是,这需要使::after
元素固定宽度,这显然不适用于不同宽度的标题:http: //jsfiddle.net/nbSTf/
关于如何获得一条可变宽度的线条来填充标题右侧的空间,而不在 HTML 中插入额外元素的任何想法?
编辑: Tyriar 在下面的回答(建议在标题后面全宽绘制线条并设置背景颜色以擦除文本后面的线条)提醒我这是在重复的背景图像前面发生的 - 所以没有背景技巧不幸的是可能的。