当通过添加::after
规则强制一行文本或内联元素在其父元素中对齐时,我注意到父元素将在高度上扩展,以适应伪元素,即使我尝试防止它:
.test {
background-color:#ccc;
text-align:justify;
}
.test:after {
display:inline-block;
content:'';
width:100%;
height:0;
}

<div class="test">test 1 foo bar</div>
&#13;
这是我到目前为止所尝试的内容以及它给我带来了什么(按照绝望的程度增加):
height:0
:无变化line-height:0
:无变化overflow:hidden
:无变化white-space:nowrap
:无变化white-space:nowrap
:打破了布局position:relative;top:-100%
:无变化position:absolute
:打破了布局除了给父母一个固定的高度或使用flexbox之外的任何建议?
答案 0 :(得分:0)
我知道如何解决一行文本的唯一方法是设置高度和行高:
.test {
background-color:#ccc;
text-align:justify;
height: 1em;
line-height: 1;
}
.test:after {
display:inline-block;
content:'';
width:100%;
}
答案 1 :(得分:0)
您的问题与:{false}元素上的display: inline-block
有关。由于它是内联项,因此您还可以看到来自空白区域的一些效果。如果将其更改为display: block
,则一切都按预期工作。