溢出:覆盖在 Firefox 中不起作用

Posted

技术标签:

【中文标题】溢出:覆盖在 Firefox 中不起作用【英文标题】:Overflow: overlay doesn't work in firefox 【发布时间】:2012-01-22 12:58:14 【问题描述】:

在我的网站上,我需要将 css 属性 overflow: overlay 用于 <div>

但是,它没有在浏览器中呈现,并且在 firebug 中检查 css 显示它甚至不存在,但它在 Chrome 中可以正常工作。我还没有测试过 safari。

我必须进行哪些更改才能使overflow: overlay css 属性正常工作?

谢谢

【问题讨论】:

【参考方案1】:

溢出的可能值为:

visible
hidden
auto
scroll

请参阅 here 或 here 了解有关这些内容的讨论。

在不同的浏览器中使用任何其他值都会产生不可预知的结果,因为它们处理不正确的值的方式不同。

编辑:在评论之后,我设法找到了对溢出的提及:overlay here。

叠加被描述为:

内容被剪裁并在必要时添加滚动条。

重要的是,它也只适用于 Safari 或 Chrome(即 WebKit)。

WebKit bugzilla 上的This item 建议无论如何这个世界都不长:

WebKit 目前有一个名为“overlay”的专有 CSS 溢出值,它没有被记录在案,据我阅读代码可以看出,它的工作方式与“auto”完全一样。

我们应该删除它或将其重命名为“-webkit-overlay”。

2016 年 3 月更新

看起来overflow: overlay 还没有消失。有迹象表明它正在进入标准。

overlayauto 之间的区别仅在于滚动条会出现在页面内容的顶部,而不会占用布局空间。

见here for the discussion。

【讨论】:

叠加的工作方式与自动相同。 (必要时添加滚动条) 但是有一点不同:使用auto,滚动条添加到 x-overflow 上的元素下方。使用overlay,它被添加到元素中!这意味着不会占用额外的屏幕空间,但元素本身内的文本会被滚动条挡住。这是一个微妙但有用的区别。在 Chromium 上测试。 “溢出:覆盖”与“溢出:自动”不同。如果您通过给滚动条一些宽度来设置它的样式,那么这两个属性都有不同的效果。在覆盖的情况下,滚动条无论如何都不会推送内容,因为它浮动在内容之上并且不在正常的文档流中。但是在“overflow: auto”的情况下,滚动条会占据一些宽度(由您指定),并像任何流入元素一样推送内容。 MDN 网络文档建议不要使用 overflow: overlay developer.mozilla.org/en-US/docs/Web/CSS/overflow 。另请查看 bugzilla.mozilla.org/show_bug.cgi?id=1521631

以上是关于溢出:覆盖在 Firefox 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的动画在 Firefox 中不起作用?

为啥动画内容在 Firefox 中不起作用?

按钮:悬停在 Firefox 中不起作用

渐变在 Chrome 中不起作用,但在 Firefox 中起作用

calc() 在 Firefox 中不起作用

为啥 Jquery 加载在 Firefox 中不起作用?