css偏方:你有几种方法让DOM消失?

html-css013

css偏方:你有几种方法让DOM消失?,第1张

其实这是我在某次面试前端实习生时候遇到的一个问题,面试官说你有多少种让DOM隐藏的方法,能说多少说多少,当时脑抽,因为是“能说多少说多少”就觉得那肯定有好多,总结一下当时想出来的“偏方”。

两者不同:如果设置 display:none,将隐藏整个元素,如果设置 visibility:hidden,元素的内容将不可见,但元素仍保持原来的位置和大小。

思来想去既然是隐藏,我是不是还可以说 opacity:0,问了一下这个答案行不行,他说行,还有吗?

当然有:

设置position为position:absolute或fixed,可以通过z-index遮掩。

设置父元素为 overflow:hidden ,将想要隐藏的元素移出父元素范围。

通过css的clip属性,将DOM裁剪。

通过css的transform属性

a. transform: skew(90deg) 拉伸90度,当然不一定是90

b. transform: scale(0) 缩放到0

c. transform: rotateX(90deg) 当然角度不一定是90,也不一定是沿x轴

=。=面试完之后我就去群里边问了一下,大部分人说的答案都是 display: none和 visibility: hidden斗胆猜测一下这两个应该是面试官想要的答案。

虽然答案可能就这两个,但是我还是有用到过我的“偏方”去做隐藏元素,

我遇到的情况是,我需要为DOM元素做一个fadeout+fadein的动画,元素带有click事件,fadeout之后只是opacity为0,然后就有了 元素隐藏了之后点击事件还存在 这个bug。

当然解决方案有很多,可以通过js,也可以通过css,css可以通过延时+transform来做,也算是我的偏方吧,可能解决方案并不完美,望留言指教。

当然这只是一些自己瞎琢磨出来的方法,希望有和我一样爱闹腾的同学补充一下下,也希望大神见到后不吝指教,感激不尽。

在CSS中,让元素隐藏(指屏幕范围内肉眼不可见)的方法很多,有的占据空间,有的不占据空间;有的可以响应点击,有的不能响应点击。下面一个个列出,选一个适合你的 { display: none/* 不占据空间,无法点击 */ } { visibility: hidden/* 占据空间,无法

在CSS中,让元素隐藏(指屏幕范围内肉眼不可见)的方法很多,有的占据空间,有的不占据空间;有的可以响应点击,有的不能响应点击。下面一个个列出,选一个适合你的

{ display: none/* 不占据空间,无法点击 */ }

{ visibility: hidden/* 占据空间,无法点击 */ }

{ position: absolutetop: -999em/* 不占据空间,无法点击 */ }

{ position: relativetop: -999em/* 占据空间,无法点击 */ }

{ position: absolutevisibility: hidden/* 不占据空间,无法点击 */ }

{ height: 0overflow: hidden/* 不占据空间,无法点击 */ }

{ opacity: 0filter:Alpha(opacity=0)/* 占据空间,可以点击 */ }

{ position: absoluteopacity: 0filter: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)

/* 不占据空间,无法点击 */}