我有一个包含伪元素来控制下划线的文本元素。我想要达到的是元素到达两行(或更多)时,我希望下划线为元素的100%宽度,但现在它仅占最后一行的100%(请参见截图)。CSS:多行上的伪边界宽度
我已经提出了一个小提琴向你展示我的意思:https://jsfiddle.net/m6rmxuoy/1/
有两个例子:一个display: inline
为h2
元素:
.wrapper {
width: 260px;
h2 {
position: relative;
display: inline;
background-color: yellow;
&:after {
position: absolute;
left: 0;
bottom: 0;
width: 80px;
height: 3px;
background-color: #0077bc;
content: '';
}
&:hover:after {
width: 100%;
}
}
}
问题这是悬停状态下行的宽度不会填满第一行的宽度。
的第二次尝试,与display: inline-block
,适应了包装宽度,而不是在线路最长停止,因为display: inline
做:
.wrapper2 {
width: 260px;
h2 {
position: relative;
display: inline-block;
background-color: yellow;
&:after {
position: absolute;
left: 0;
bottom: 0;
width: 80px;
height: 3px;
background-color: #0077bc;
content: '';
}
&:hover:after {
width: 100%;
}
}
}
我想达到的结果是这样的:
我已经搜索了相当一段时间了,甚至发现了box-decoration-break: clone;
,但它并没有帮助我使用伪元素。
任何想法?
是的......你不能这么做......这不是线框模型的工作方式。 - https://stackoverflow.com/questions/37406353/make-container-shrink-to-fit-child-elements-as-they-wrap –
为什么不把它换成带底部边框的内嵌块div? – abimelex