我正在尝试制作一个相当复杂的图像和信息网格(几乎像 Pinterest)。具体来说,我正在尝试将一组依次内联<ul>s
。我让它工作但一个方面导致问题所以我试图询问这个小部分以避免整个问题的复杂化。
为了水平对齐图像及其信息,我们将内联<li>s
与其中的其他内联块级元素一起使用。<li>s
除了几乎没有高度之外,一切都正常工作。
HTML 和 CSS在 JSFiddle 中,如果你想弄乱它,除了下面:
HTML:
<div>
<ul class="Container">
<li>
<span class="Item">
<a href="#"><img src="http://jsfiddle.net/img/logo.png"/></a>
<span class="Info">
<a href="#">Title One</a>
<span class="Details">One Point One</span>
</span>
</span>
</li>
<li>
<span class="Item">
<a href="#"><img src="http://jsfiddle.net/img/logo.png"/></a>
<span class="Info">
<a href="#">Title Two</a>
<span class="Details">Two Point One</span>
</span>
</span>
</li>
</ul>
CSS:
.Container {
list-style-type:none;
}
.Container li {
background-color:grey;
display:inline;
text-align:center;
}
.Container li .Item {
border:solid 2px #ccc;
display:inline-block;
min-height:50px;
vertical-align:top;
width:170px;
}
.Container li .Item .Info {
display:inline-block;
}
.Container li .Item .Info a {
display:inline-block;
width:160px;
}
如果您查看 jsfiddle 链接中的结果,您会看到灰色背景仅包含整个<li>
. 我知道改变<li>
来display:inline-block
解决这个问题,但由于其他原因这是不可行的。
所以首先,我只是想看看是否有人理解为什么内联<li>
元素没有任何高度。我在规范中找不到任何解释这一点的东西。我知道我不能将高度添加到内联元素,但是任何关于为什么会发生这种情况的解释可能会让我修复它会很棒。
其次,如果您使用 IE 的开发人员模式检查元素,您会看到虽然背景颜色在正确的位置,但<li>'s
根据将鼠标悬停在元素上,边界框的实际位置在容器的底部。如果它在每个浏览器中都位于顶部,我可以处理这个问题,但它显然会有所不同。
注意:在这种情况下,我并不真正关心旧版浏览器,但我不使用 HTML5 或 JavaScript 定位。
谢谢。