【发布时间】:2015-01-20 02:58:27
【问题描述】:
简短的问题:为什么底线之间有垂直空间,而不是上线?我不想要垂直空间。
TL;DR
在 Firefox 和 Chrome 中的行为相同,因此不太可能是错误,但显然我不明白。
虽然我知道 .wrap3 的字体大小比以前的大,但行高为零,并根据调试器以这种方式计算。还要注意,虽然文本是 16pt,但它的 line-height 计算为 19.2pt,这与 wrap1 的 font-size 非常接近。进一步注意 .wrap2 使用 40pt 字体...超过两倍大,但对行距没有影响。但大于 40pt,出现空间。 .wrap3 使用 60pt,这会产生明显可见的垂直空间……但远小于 60pt。
我读过关于 struts 的 here,另一个类似的问题是 here。并且有大量信息和几种技术可以消除内联和内联块元素之间的空间,我已经在适当的情况下成功地使用了它们。
然而,现在,我面临另一种情况......需要内联元素之间的空间,以在流体布局中工作以提供元素之间的空间。虽然我在 sn-p 中有一个
,但想象一下列表中的项目远不止 4 个,以及不同大小的浏览器窗口或设备屏幕。
我想要做的是改变内联元素之间的间距,这是 .wrapN 字体大小的四分之一,这对我有利。用填充或边距将这些项目分开将不允许一行上的最后一个项目到达窗口的最右边缘,也不允许下一行的第一个项目到达窗口的最左边缘,尽管解决方案使用填充或边距或其他东西都可以,只要在适当的情况下可以到达窗口的两侧。
body { margin: 0; padding: 0; }
.wrap1 { font-size: 20pt; line-height: 0; }
.wrap2 { font-size: 40pt; line-height: 0; }
.wrap3 { font-size: 60pt; line-height: 0; }
.foo2 { display: inline-block; line-height: 0; font-size: 0; }
.foo2 p {
}
.foo2 span {
font-size: 16pt;
line-height: 1.2;
display: block;
background: #ccc;
}
<div class="wrap1">
<div class="foo2"><p><span>text1</span></p></div>
<div class="foo2"><p><span>2text</span></p></div><br>
<div class="foo2"><p><span>3biggertext</span></p></div>
<div class="foo2"><p><span>4text</span></p></div>
</div>
<div class="wrap2">
<div class="foo2"><p><span>text1</span></p></div>
<div class="foo2"><p><span>2text</span></p></div><br>
<div class="foo2"><p><span>3biggertext</span></p></div>
<div class="foo2"><p><span>4text</span></p></div>
</div>
<div class="wrap3">
<div class="foo2"><p><span>text1</span></p></div>
<div class="foo2"><p><span>2text</span></p></div><br>
<div class="foo2"><p><span>3biggertext</span></p></div>
<div class="foo2"><p><span>4text</span></p></div>
</div>
【问题讨论】:
标签: css