visibility: hidden与display:none的区别

要想了解visibility: hidden与display:none的区别,我们还是先来看看他们各自的定义及用法。

定义:

visibility 属性规定元素是否可见

说明:

这个属性指定是否显示一个元素生成的元素框,它是仍然占据基本空间的,只是不可见而已。值设置成collapse在表格中用于从表格布局中删除列或行。

可能的值

visible 默认值。元素是可见的。
hidden 元素是不可见的。
collapse 当在表格元素中使用时,此值可删除一行或一列,但是它不会影响表格的布局。被行或列占据的空间会留给其他内容使用。如果此值被用在其他的元素上,会呈现为 “hidden”。
inherit 规定应该从父元素继承 visibility 属性的值。

浏览器支持:所有主流浏览器都支持 visibility 属性 任何的版本的 Internet Explorer (包括 IE8)都不支持 “inherit” 和 “collapse” 属性值。不过也没关系,可以忽略IE,现在IE都不叫IE了,叫Edge了。虽然它来得有点晚,但是总算来了。

定义:

display 属性规定元素应该生成的框的类型。

可能的值

none 此元素不会被显示。
block 此元素将显示为块级元素,此元素前后会带有换行符。
inline 默认。此元素会被显示为内联元素,元素前后没有换行符。
inline-block 行内块元素。(CSS2.1 新增的值)
list-item 此元素会作为列表显示。
run-in 此元素会根据上下文作为块级元素或内联元素显示。
compact CSS 中有值 compact,不过由于缺乏广泛支持,已经从 CSS2.1 中删除。
marker CSS 中有值 marker,不过由于缺乏广泛支持,已经从 CSS2.1 中删除。
table 此元素会作为块级表格来显示(类似 <table>),表格前后带有换行符。
inline-table 此元素会作为内联表格来显示(类似 <table>),表格前后没有换行符。
table-row-group 此元素会作为一个或多个行的分组来显示(类似 <tbody>)。
table-header-group 此元素会作为一个或多个行的分组来显示(类似 <thead>)。
table-footer-group 此元素会作为一个或多个行的分组来显示(类似 <tfoot>)。
table-row 此元素会作为一个表格行显示(类似 <tr>)。
table-column-group 此元素会作为一个或多个列的分组来显示(类似 <colgroup>)。
table-column 此元素会作为一个单元格列显示(类似 <col>)
table-cell 此元素会作为一个表格单元格显示(类似 <td> 和 <th>)
table-caption 此元素会作为一个表格标题显示(类似 <caption>)
inherit 规定应该从父元素继承 display 属性的值。

浏览器支持:所有主流浏览器都支持 display 属性。

总结:如果想不可见的元素占据页面上的空间,那么请使用 “visibility” 属性来创建占据页面空间的不可见元素。如果想不可见的元素不占据页面上的空间,那么请使用 “display” 属性来创建不占据页面空间的不可见元素。

 

原文:http://yunkus.com/article/div/273.html

本文:visibility: hidden与display:none的区别

Leave a Reply