【发布时间】:2017-01-21 07:45:48
【问题描述】:
我想使用display: table-* CSS 属性来格式化照片列表。我相信下面是它的“正确”实现,因为它在理论上没有任何问题,但它在 Firefox 和 Safari 中显示,表格布局搞砸了,正如你从边框看到的那样。为了进行比较,请尝试将下面的两个 img 标签包装在 <div></div> 中;这显示正确。
这是特定于 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)上运行吗?
-
这不是 IE6/7 的问题,实际上根据 o.k.w.它only 在 IE 中运行良好,但在 Firefox 或 Safari(我测试过的仅有的两个浏览器)中却不行。在 Firefox 和 Safari 中,img 表格单元格的边框与其他表格单元格的边框不同。
-
什么时候最好在 Webkit/Firefox 上留下错误报告?似乎我们已将问题减少为 img 在标签内渲染为表格单元格,该标签渲染为带有边框折叠的表格:折叠。这个问题随着单独的边界而消失。这是否足以值得报告错误,或者我们还不确定这种行为是否不符合 W3C 标准并且实际上是错误?
-
我只是这样做了bugzilla.mozilla.org/show_bug.cgi?id=537201,但还没有回应。
标签: css image css-tables