当应用于html
元素时,样式visibility:hidden
会做什么?这和滚动条有什么关系吗,特别是。关于IE7?
背景: Oracle Apex生成此代码,我正在尝试找出它是否会导致IE7中间歇性隐藏的水平滚动条出现问题:
<style> html {visibility:hidden;} </style>
发布于 2013-01-22 10:25:56
规格说明
According to the spec,则visibility
属性仍应影响布局。这对我来说意味着,如果一个元素最终导致滚动行为,它不应该影响滚动。此外,任何设置为visible
的子元素都应该在hidden
元素中可见。
观察到的行为
使用this fiddle...
Opera,IE 8-10,
使html
元素上的visibility: hidden
不呈现body
(这是应该的),但仍然显示html
本身的一些呈现,就像它显示background-color
一样。正如BoltClock在他的评论中指出的,这实际上可能是意料之中的,因为html
的background
(according to spec)将成为...
“画布的背景及其背景绘画区域扩展到覆盖整个画布。”
这些浏览器还允许在内部设置回visible
的元素按照visibility
的规范显示,因此div
可以显示并可以滚动。
Safari和
它不会在html
上呈现background-color
,但它允许显示div
并显示滚动条。因此,Chrome不会将background
属性传播到画布,可能是因为它的visibility
设置为hidden
。
IE7
html
元素的background-color
不会呈现(像Chrome一样),但是里面也没有显示div
元素的滚动条。这似乎表明它没有按照规范正确地留在布局中。
因此,visibility: hidden
属性可能是您的问题的一部分。显然,背景点与您的滚动问题一点也不相关,但确实解决了您整个问题的要点,即该属性如何影响html
元素。
在我看来,Chrome和Safari的渲染似乎是最直观的(这是我作为一个设计师所期望的),因为我不希望background-color
渲染(因为元素是hidden
),但同时,如果我将一个子元素设置为visible
,那么即使html
包装器设置为visibility: hidden
,我也希望浏览器允许我代表该子元素进行滚动。然而,webkit浏览器或其他浏览器是否最接近规范是有争议的,因为正如BoltClock在他的评论中所指出的,规范似乎没有指出html
元素上的visibility
是否应该影响background
属性的传播)。
https://stackoverflow.com/questions/14450188
复制相似问题