一、CSS元素隐藏
在CSS中,让元素隐藏(指屏幕范围内肉眼不可见)的方法很多,有的占据空间,有的不占据空间;有的可以响应点击,有的不能响应点击。一个一个看。
{ display: none; /* 不占据空间,无法点击 */ } /********************************************************************************/ { visibility: hidden; /* 占据空间,无法点击 */ } /********************************************************************************/ { position: absolute; top: -999em; /* 不占据空间,无法点击 */ } /********************************************************************************/ { position: relative; top: -999em; /* 占据空间,无法点击 */ } /********************************************************************************/ { position: absolute; visibility: hidden; /* 不占据空间,无法点击 */ } /********************************************************************************/ { height: 0; overflow: hidden; /* 不占据空间,无法点击 */ } /********************************************************************************/ { opacity: 0; filter:Alpha(opacity=0); /* 占据空间,可以点击 */ } /********************************************************************************/ { position: absolute; opacity: 0; filter:Alpha(opacity=0); /* 不占据空间,可以点击 */ } /********************************************************************************/ { zoom: 0.001; -moz-transform: scale(0); -webkit-transform: scale(0); -o-transform: scale(0); transform: scale(0); /* IE6/IE7/IE9不占据空间,IE8/FireFox/Chrome/Opera占据空间。都无法点击 */ } /********************************************************************************/ { position: absolute; zoom: 0.001; -moz-transform: scale(0); -webkit-transform: scale(0); -o-transform: scale(0); transform: scale(0); /* 不占据空间,无法点击 */ }
二、display:none和visibility:hidden
目前,我所知道的不同有三点(欢迎补充):
1.空间占据
2.回流与渲染
3.株连性
display:none隐藏产生reflow和repaint(回流与重绘),而visibility:hidden没有这个影响前端性能的问题;第三点估计是不少同行不知道的,就是“株连性”方面的差异。
所谓“株连性”,就是如果祖先元素遭遇某祸害,则其子子孙孙无一例外也要遭殃。display:none就是“株连性”明显的声明:一旦父节点元素应用了display:none,父节点及其子孙节点元素全部不可见,而且无论其子孙元素如何不屈地挣扎都无济于事。
在实际的web应用中,我们要经常实现一些显示隐藏的功能,由于display:none本身特性以及jQuery潜在的驱动,使得我们对display:none这种隐藏特性相当熟知。因此,久而久之会形成比较牢固的情感化认识,并无法避免地将这种认识迁移到其他类似表现属性(eg. visibility)的认识上,再加上一些常规经验……
举例来说吧,通常情况下,我们给一个父元素应用visibility:hidden,则其子孙后代也都会全部不可见。于是,我们就会有类似的认识迁移:应用了visibility:hidden声明下的子孙元素如何不屈地挣扎都摆脱不了不可见被抹杀的命运。而实际上却存在隐藏“失效”的情况。
何时隐藏“失效”?很简单,如果子孙元素应用了visibility:visible,那么这个子孙元素又会刘谦般地显现出来。
visibility就是这样一个funny的属性。
对比总结:
display:none是个相当惨无人道的声明,子孙后代全部搞死(株连性),而且连块安葬的地方都不留(不留空间),导致全体民众哗然(渲染与回流)。
visibility:hidden则具有人道主义关怀,虽然不得已搞死子孙,但是子孙可以通过一定手段避免(伪株连性),而且死后全尸,墓地俱全(占据空间),国内民众比较淡然(无渲染与回流)。
相关推荐
为了获取display:none元素的尺寸,一个常见的方法是临时将该元素的display属性更改为visibility:hidden,从而使其获得尺寸信息,再通过计算其样式来获得高度和宽度。但是,这会导致元素暂时变为可见,可能会在页面上...
`visibility:hidden` 和 `display:none` 的主要区别在于,前者隐藏元素的同时保留其占据的空间,而后者则完全从布局中移除元素。这种差异在处理页面布局时尤为关键。例如,如果一个元素的 `display` 被设置为 `none`...
前言: 在使用css隐藏栏位或物件的时候, 常常会使用到display:none和visibility:hidden这两个属性, 但却很容易分不清楚这两个的差别, 或是乾脆同时使用两种属性,来确保物件一定被隐藏, 其实我们可以很简单的来...
### JavaScript 获取隐藏元素 (display: none) 的高度和宽度的方法 #### 一、问题背景与需求分析 在前端开发过程中,经常会遇到需要获取隐藏元素尺寸的情况。这些元素可能因为某些逻辑原因被设置为 `display: none...
在CSS中,隐藏元素的方法主要有三种:`display:none`、`visibility:hidden`和`opacity:0`,它们各自有不同的特点和适用场景。 1. `display:none`:此属性会使元素完全从页面布局中消失,不占据任何空间。元素及其...
在Web页面前台编码过程中,CSS属性display: none经常被用来隐藏页面上的元素,以便于构建动态交互效果或是实现页面布局调整。但这个属性的使用需要特别注意几个关键点,以确保不会影响页面的交互性、可访问性以及...
其中,`display:none` 和 `visibility:hidden` 是两个常用的属性,它们都可以用来隐藏页面上的元素,但它们的工作原理和效果是不同的。下面将详细解释这两个属性的区别,并通过实例进行演示。 1. `display:none` `...
在网页设计和开发中,`display` 和 `visibility` 是两个非常重要的CSS属性,它们用于控制元素在页面上的可见性和布局。这篇博客文章通过代码示例深入探讨了这两个属性的区别和用法。 首先,`display` 属性主要用于...
总之,`visibility`和`display`在CSS中扮演着不同的角色,`visibility`关注的是元素的可见状态,而`display`则涉及元素在布局中的存在状态。了解它们的差异并合理运用,可以帮助我们更好地控制网页的显示效果和用户...
在CSS中,`display`和`visibility`两个属性都是用于控制元素在页面上的显示状态,但它们的作用方式和效果有着显著的区别。 `display`属性主要影响元素的布局和类型。它有多种不同的值: 1. `block`:将元素转换为...
在CSS中,隐藏元素主要有两种方法:`display: none` 和 `visibility: hidden`,它们在隐藏元素的同时,对页面布局和交互性有着不同的影响。此外,还有一些其他的技术,如设置`height: 0`结合`overflow: hidden`或者...
总的来说,`visibility`和`display`都是CSS中强大的工具,用于控制元素的可见性和布局。理解它们的区别并正确使用,可以让你在创建网页时更加灵活,同时也能避免可能对SEO产生的负面影响。在实际工作中,开发者应...
在jQuery中,`:hidden`选择器用于匹配那些当前不可见的元素,这些元素通常具有`display: none;`的CSS属性。比如在表格中,如果某一行(`<tr>`标签)被设置为隐藏,那么这一行就会被`:hidden`选择器选中。 实例代码...
例如,如果需要确保隐藏的表单元素在提交时能包含其值,那么可能需要考虑使用其他隐藏机制,如将元素从文档流中移除(使用`visibility: hidden;`或通过绝对定位脱离文档流),或者在表单提交之前将隐藏的元素重新设...
隐藏元素的选择:`display: none` vs `visibility: hidden`** 在隐藏元素时,应根据需求选择合适的方法。如果希望元素完全消失,包括不影响布局,应使用`display: none`;如果只是暂时隐藏元素,但保持其在布局中的...
在 CSS 中隐藏页面元素有多种方式,包括"display:none"、"visibility:hidden"、"opacity:0"、"设置height、width模型属性为0"、"position:absolute"和"clip-path"等方法。每种方法都有其特点和应用场景。 1. ...