Safari:table-layout:固定在绝对定位元素中不伸展父级

时间:2013-05-15 05:03:31

标签: html safari fixed tablelayout

我有div display: table; table-layout: fixed; width: 100%作为另一个div position: absolute的孩子。在Chrome,IE和Firefox上,使用table-layout: fixed的子div使父div扩展为100%,但在Safari(6.0.4,OS X 10.8.3)中,这不会发生了。这是一张图片

Safari rendering problem

和jsbin http://jsbin.com/oqupah/6/edit(确保在新窗口中打开输出)。标记是这样的:

<div style="position:absolute;border: 1px solid black">
  <div style="display:table;table-layout:fixed;width:100%;border:1px solid red;">
    <div style="display:table-cell;border:1px solid green">a</div>
  </div>
</div>

这是HTML 5和XHTML 1.0 doctypes。我注意到如果我在safari中删除了doctype,它的行为与其他浏览器一样,但删除doctype不是一种选择。

实际上,当我实现一个绝对定位的弹出窗口时,我有这个代码,弹出窗口的内容是div display: table; table-layout: fixed; width: 100%。我希望弹出窗口能够伸展100%,以便我可以轻松提供max-width,如果窗口调整大小,弹出窗口会相应缩小。

所以我猜这是Safari中的一个错误?移动游猎的行为是一样的。我可以添加一些东西使其表现得像其他浏览器一样吗?

2 个答案:

答案 0 :(得分:1)

修复是将right: 0添加到绝对定位的div

......浪费了很多时间。

答案 1 :(得分:0)

我在display:table元素上使用它修复了它:

table-layout: fixed;
max-width: none;
width: auto;
min-width: 100%;