其他一些问题已经解决了如何最好地申请text-align: justify
要使内联块元素均匀分布……例如,我如何 *真的 *证明HTML+CSS中的水平菜单合理?
但是,浏览器给出了"清除"内联元件线的100%宽度元素。我不知道如何在不使用的情况下摆脱空旷的垂直空间line-height: 0;
在父元素上。
有关问题的示例,请参阅这个小提琴
对于我的解决方案line-height: 0;
, 看这个小提琴
我正在使用的解决方案需要一个新的line-height
应用于子元素,但以前设置line-height
迷路了。有人知道更好的解决方案吗?我想避免表,以便在必要时可以包装元素,还可以弹性箱,因为浏览器支持还没有。我也想避免浮子,因为被间隔的元素数量将是任意的。
答案
Updated the “Future” solution info below; still not yet fully supported.
目前的解决方法(IE8+,FF,测试Chrome)
Relevant CSS
.prevNext {
text-align: justify;
}
.prevNext a {
display: inline-block;
position: relative;
top: 1.2em; /* your line-height */
}
.prevNext:before{
content: '';
display: block;
width: 100%;
margin-bottom: -1.2em; /* your line-height */
}
.prevNext:after {
content: '';
display: inline-block;
width: 100%;
}
Explanation
这display: block
在:before
负底部边距的元素将文本线拉到一条线高的高度,从而消除了额外的线路,但会取代文本。然后与position: relative
在inline-block
元素对位移进行了应对,但没有将附加线添加回。
尽管CSS无法直接访问line-height
“单位"本身,使用em
在里面margin-bottom
和top
设置很容易容纳任何line-height
作为乘数值。所以1.2
,,,,120%
, 或者1.2em
都是平等的 在计算中关于line-height
,这使使用em
这里是一个不错的选择,即使line-height: 1.2
设置,然后1.2em
为了margin-bottom
和top
将匹配。良好的编码以使站点的外观正常化意味着在某个时候line-height
应明确定义,因此,如果使用任何乘数方法,则等效em
单位将提供与line-height
。line-height
设置为非em
长度,例如px
,可以设置该设置。
肯定使用CSS预处理器(例如SIMS或SCSS)具有变量或混合蛋白,可以帮助保持这些值与适当的值匹配line-height
,或JavaScript可以用来动态阅读,但实际上,line-height
应该在使用此处的何处以及这里进行的适当设置中知道。
UPDATE for minified text (no spaces) issue
Kubi的评论指出,HTML的缩小,可以去除html<a>
元素导致理由失败。A伪空间<a>
标签没有帮助(但这是可以预料的,因为空间正在发生inline-block
元素),一个<wbr>
在之间添加<a>
标签无济于事(可能是因为下一行不需要休息),因此,如果需要缩小,则解决方案是硬编码的非破坏空间字符
- 其他太空字符喜欢稀薄的空间和空间没有工作(令人惊讶的是)。
接近未来的干净解决方案
一个办法其中webkit
在时代的落后(截至第一次撰写本文)是:
.prevNext {
text-align: justify;
-moz-text-align-last: justify;
-webkit-text-align-last: justify; /* not implemented yet, and will not be */
text-align-last: justify; /* IE */
}
它在FF 12.0+和IE8+中起作用(IE7中的越野车)。
对于Webkit,从第39版开始(至少可能已经爬上了),它确实支持它without 这-webkit-
扩展,但是only if the user has enabled the experimental features (可以在chrome://flags/#enable-experimental-web-platform-features
)。有传言称41或42版应该得到全部支持。由于它没有无缝支持webkit
然而,it is still only a partial solution。但是,我认为我应该发布它,因为它对某些人可能有用。