我想使用display: table-*
CSS属性来格式化照片列表。我相信下面是它的一个“正确的”实现,因为理论上它没有什么问题,但是它会在Firefox和Safari中显示表格布局搞乱了,就像你在边界看到的一样。为了进行比较,请尝试将以下两个img标签包装在<div></div>
;这显示正确。img {display:table-cell} - 它是一个错误吗?
这是特定于img标签的东西,可能它认为它有多大与实际需要多少空间有关。这是一个错误?
下面的代码是对这个问题的最小挑衅。
<!DOCTYPE html>
<html>
<head>
<style>
.photos {display: table; border-collapse: collapse;}
.photos > div {display: table-row}
.photos > div > * {
display: table-cell;
vertical-align: top;
border: 1px solid #000;
padding: 10px;
}
</style>
</head>
<body>
<div class="photos">
<div>
<p>Hello World</p>
<img src="http://www.freeimages.co.uk/galleries/nature/weather/thumbs/frost_oak_leaf_winter_218310.jpg" />
</div>
<div>
<p>Hello World</p>
<img src="http://www.freeimages.co.uk/galleries/nature/weather/thumbs/frost_oak_leaf_winter_218310.jpg" />
</div>
</div>
</body>
</html>
你不希望这个工作在IE6/7(或在共同模式下的8)? – cletus 2009-12-30 00:27:20
这不是IE6/7的问题,实际上根据o.k.w.它*仅*在IE中很好地工作,但不在Firefox或Safari中,这是我测试的仅有的两个浏览器。在Firefox和Safari中,img表格单元格上的边界与其他表格单元格的边界关闭。 – 2009-12-30 04:27:54
什么时候适合在Webkit/Firefox上留下错误报告?看起来我们已经将问题简化为img的呈现方式,将其作为table-cell内的标记呈现为带有border-collapse:collapse的表格。问题与分离的边界消失。这足以得出一个错误报告,或者我们还不确定这种行为是否符合W3C标准,并且实际上是一个错误? – 2009-12-30 15:33:23