隐藏任何HTML标记的正确方法是什么?

时间:2012-02-24 04:29:29

标签: html css

什么是适用于隐藏任何HTML的CSS。示例 - 类似<div>标记。 我习惯这样做:

div {display:none; visibility:hidden;}

CSS是否支持所有主要浏览器隐藏该div。特别是它支持I.E。

5 个答案:

答案 0 :(得分:18)

如果您仍希望元素占用页面布局中的空间,请使用visibility: hidden;。例如:

Hello
<div style="visibility: hidden; height: 100px;">Hidden</div>
World

你仍会在两段文字中看到100px,但你不会看到div中的内容。

使用:

Hello
<div style="display: none; height: 100px;">Hidden</div>
World​​​​​

两个文本元素之间没有空格,因为div根本不会影响布局。

您可以想到的任何现代浏览器都支持这两种版本。

答案 1 :(得分:12)

启用CSS的浏览器普遍支持display:nonevisibility:hidden,因此只适用一般的CSS caveat。具有不同的效果:display:none导致文档呈现为好像元素根本不存在,而visibility:hidden表示元素将在格式化文档时正常处理,通常占用一些空间,但是从视图中删除,好像它已完全透明。

您使用哪一个取决于您隐藏元素的目标。例如,如果您动态(使用客户端脚本)关闭或打开某些内容,那么visibility:hidden会更好,因为它不会导致重绘其他内容。

使用两者通常是没有意义的,因为display:none使visibility:hidden无关紧要(尽管在级联中,可能会发生这些属性的设置可能会被其他样式表覆盖,然后{{1可能会失效)。

答案 2 :(得分:8)

您甚至不需要visibility:hidden;

div {
    display:none;
}

以上应该足够了。它适用于所有浏览器。它几乎完全隐藏了元素,因为它将不再对页面布局产生影响。

答案 3 :(得分:2)

display : none; 这是足够和标准的方法来做到这一点

答案 4 :(得分:1)

HTML5 中,有一个名为hidden的新全局属性。

来自https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/hidden

  

隐藏的全局属性是一个布尔属性,表示该元素尚未或不再相关。例如,它可用于隐藏在登录过程完成之前无法使用的页面元素。浏览器不会使用隐藏属性集渲染元素。

请注意hiddendisplayvisibility相比具有语义含义。这就是为什么它不是CSS属性,而是HTML属性。