如何保持< a>当有< span>时,标记下划线从左到右运行而没有任何中断内部标签,左/右填充或边距设置?了解为什么会发生这种情况也会有所帮助?
我可能会使用盒子阴影或边框底部,但我不是在寻找那些解决方案.
span {
padding-right: 10px;
}
<a href="#">
<span><</span>
<span>Previous page</span>
</a>
最佳答案 在您的情况下,填充将在两个文本之间添加10px空间,因此我们可以使用字母间距与第一个跨度来创建此空间.
如果您参考specification,您可以阅读:
Underlines, overlines, and line-throughs are applied only to text
(including white space, letter spacing, and word spacing): margins,
borders, and padding are skipped
span:first-child {
letter-spacing: 10px;
}
<a href="#">
<span><</span>
<span>Previous page</span>
</a>
为了使这更通用,我们可以考虑使用伪元素的字母间距来模拟跨度之间的空间:
顺便说一下,不要忘记考虑在某些情况下已经存在的空白[如上所述].
.first span:after {
content:" ";
letter-spacing: 15px;
}
.second span:after {
content:" ";
letter-spacing: 30px;
}
span:last-child::after {
display:none; /* no need for last child*/
}
<a href="#">
<span>aa</span>
<span>bb</span>
<span>cc</span>
</a>
<br>
<a href="#"><span>aa</span><span>bb</span><span>cc</span></a>
<br>
<a href="#" class="first">
<span>aa</span>
<span>bb</span>
<span>cc</span>
</a>
<br>
<a href="#" class="first"><span>aa</span><span>bb</span><span>cc</span></a>
<br>
<a href="#" class="second">
<span>aa</span>
<span>bb</span>
<span>cc</span>
</a>