【问题标题】:Safari: table-layout: fixed in absolutely positioned element doesn't stretch parentSafari:表格布局:固定在绝对定位的元素中不会拉伸父级
【发布时间】:2013-05-15 05:03:30
【问题描述】:

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

和一个 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 文档类型。我注意到如果我在 safari 中删除 doctype,它的行为会像其他浏览器一样,但删除 doctype 不是一种选择。

实际上,我在实现绝对定位弹出窗口时使用了这段代码,其中弹出窗口的内容是divdisplay: table; table-layout: fixed; width: 100%。我希望弹出窗口拉伸 100%,以便我可以轻松提供 max-width,并且如果调整窗口大小,弹出窗口会相应缩小。

所以我猜这是 Safari 中的一个错误?移动 Safari 上的行为是相同的。有什么我可以添加的让它表现得像其他浏览器一样吗?

【问题讨论】:

  • 在 Safari 5.1.7 上运行良好

标签: html safari fixed tablelayout


【解决方案1】:

解决方法是将right: 0 添加到绝对定位的div

...浪费了这么多时间。

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-16
      • 1970-01-01
      • 2015-12-26
      • 1970-01-01
      • 2016-09-01
      • 2018-07-09
      • 2017-10-05
      • 1970-01-01
      相关资源
      最近更新 更多