其他一些问题已经解决了如何最好地申请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)

See this fiddle.

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: relativeinline-block元素对位移进行了应对,但没有将附加线添加回。

尽管CSS无法直接访问line-height“单位"本身,使用em在里面margin-bottomtop设置很容易容纳任何line-height作为乘数值。所以1.2,,,,120%, 或者1.2em都是平等的 在计算中关于line-height ,这使使用em这里是一个不错的选择,即使line-height: 1.2设置,然后1.2em为了margin-bottomtop将匹配。良好的编码以使站点的外观正常化意味着在某个时候line-height应明确定义,因此,如果使用任何乘数方法,则等效em单位将提供与line-heightline-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>标签无济于事(可能是因为下一行不需要休息),因此,如果需要缩小,则解决方案是硬编码的非破坏空间字符&nbsp; - 其他太空字符喜欢稀薄的空间空间没有工作(令人惊讶的是)。

接近未来的干净解决方案

一个办法其中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。但是,我认为我应该发布它,因为它对某些人可能有用。

来自: stackoverflow.com