要想了解visibility: hidden与display:none的区别,我们还是先来看看他们各自的定义及用法。
visibility属性
定义:
visibility 属性规定元素是否可见
说明:
这个属性指定是否显示一个元素生成的元素框,它是仍然占据基本空间的,只是不可见而已。值设置成collapse在表格中用于从表格布局中删除列或行。
可能的值
visible | 默认值。元素是可见的。 |
hidden | 元素是不可见的。 |
collapse | 当在表格元素中使用时,此值可删除一行或一列,但是它不会影响表格的布局。被行或列占据的空间会留给其他内容使用。如果此值被用在其他的元素上,会呈现为 "hidden"。 |
inherit | 规定应该从父元素继承 visibility 属性的值。 |
浏览器支持:所 有主流浏览器都支持 visibility 属性 任何的版本的 Internet Explorer (包括 IE8)都不支持 "inherit" 和 "collapse" 属性值。不过也没关系,可以忽略IE,现在IE都不叫IE了,叫Edge了。虽然它来得有点晚,但是总算来了。
display属性
定义:
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" 属性来创建不占据页面空间的不可见元素。
相关推荐
`visibility:hidden` 和 `display:none` 的主要区别在于,前者隐藏元素的同时保留其占据的空间,而后者则完全从布局中移除元素。这种差异在处理页面布局时尤为关键。例如,如果一个元素的 `display` 被设置为 `none`...
前言: 在使用css隐藏栏位或物件的时候, 常常会使用到display:none和visibility:hidden这两个属性, 但却很容易分不清楚这两个的差别, 或是乾脆同时使用两种属性,来确保物件一定被隐藏, 其实我们可以很简单的来...
在介绍了这么多隐藏元素的方法之后,我们要特别注意display:none和visibility:hidden两种属性的主要区别。这两者之间的差异主要表现在以下几个方面: 1. 空间占据:display:none;隐藏的元素不占据任何布局空间,而...
2. `visibility:hidden`:与`display:none`不同,`visibility:hidden`的元素仍然占据原有的空间,周围的元素不会移动。尽管元素内容不可见,但元素本身是存在的,可以被点击。由于元素的尺寸保持不变,因此不会触发...
总的来说,理解 `display:none` 和 `visibility:hidden` 的区别对于优化网页性能和用户体验至关重要。正确使用它们可以让你更好地控制网页元素的可见性和布局,提升网站的可访问性和可用性。在实际工作中,应根据...
为了获取display:none元素的尺寸,一个常见的方法是临时将该元素的display属性更改为visibility:hidden,从而使其获得尺寸信息,再通过计算其样式来获得高度和宽度。但是,这会导致元素暂时变为可见,可能会在页面上...
然而,使用`visibility:hidden`或`display:none`来隐藏内容并不一定被视为恶意行为,尤其是当这些属性用于创建交互效果或响应式设计时。搜索引擎通常能够识别并理解这些技术,只要不是用来欺骗,一般不会对网站排名...
当设置`visibility`为`hidden`时,元素虽然不可见,但仍然占据着原有的空间,周围的元素不会移动来填补这个空位。这对于某些情况很有用,比如隐藏内容但保持布局不变。 另一方面,`display`属性则更为强大,它可以...
在jQuery中,`:hidden`选择器用于匹配那些当前不可见的元素,这些元素通常具有`display: none;`的CSS属性。比如在表格中,如果某一行(`<tr>`标签)被设置为隐藏,那么这一行就会被`:hidden`选择器选中。 实例代码...
### Display与Visibility的区别 在网页布局与样式设计中,`display`与`visibility`属性是控制元素显示状态的两种常用方式。尽管它们都能达到隐藏或显示元素的目的,但两者之间存在本质的区别。本文将深入探讨这两种...
在Web页面前台编码过程中,CSS属性display: none经常被用来隐藏页面上的元素,以便于构建动态交互效果或是实现页面布局...4. 当需要隐藏元素同时保留布局空间时,可以选择使用visibility: hidden代替display: none。
在CSS中,`display`和`visibility`两个属性都是用于控制元素在页面上的显示状态,但它们的作用方式和效果有着显著的区别。 `display`属性主要影响元素的布局和类型。它有多种不同的值: 1. `block`:将元素转换为...
在网页布局和样式设计中,`display` 和 `visibility` 是两个非常重要的CSS属性,它们都能用来控制元素的可见性,但实现方式和效果大不相同。本篇文章将深入探讨两者之间的区别,并通过示例来具体说明。 首先,`...
- **回流与渲染**:与`display: none`不同,`visibility: hidden`不会引起浏览器的回流,因为它只是隐藏了元素内容,而元素的尺寸保持不变。 - **株连性**:虽然`visibility: hidden`会使元素本身不可见,但其子...
在网页设计和开发中,`display` 和 `visibility` 是两个非常重要的CSS属性,它们用于控制元素在页面上的可见性和布局。这篇博客文章通过代码示例深入探讨了这两个属性的区别和用法。 首先,`display` 属性主要用于...
2. **临时修改样式**:将元素的 `display` 设置为 `block` 或 `inline-block`,或者将 `visibility` 设置为 `hidden`。 3. **获取尺寸**:使用 `.offsetWidth`、`.offsetHeight` 或 `getBoundingClientRect()` 来...
3. `visibility:hidden`的元素无法响应事件,`display:none`的元素同样无法响应事件,但可以通过改变`display`值使其重新可交互。 了解这两个属性的区别,可以帮助开发者更准确地调整网页元素的显示和布局,以达到...