首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >样式"visibility:hidden“对<html>元素意味着什么?

样式"visibility:hidden“对<html>元素意味着什么?
EN

Stack Overflow用户
提问于 2013-01-22 09:31:45
回答 1查看 3.9K关注 0票数 16

当应用于html元素时,样式visibility:hidden会做什么?这和滚动条有什么关系吗,特别是。关于IE7?

背景: Oracle Apex生成此代码,我正在尝试找出它是否会导致IE7中间歇性隐藏的水平滚动条出现问题:

代码语言:javascript
复制
<style> html {visibility:hidden;} </style>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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在他的评论中指出的,这实际上可能是意料之中的,因为htmlbackground (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属性的传播)。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14450188

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档