两者不同:如果设置 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来做,也算是我的偏方吧,可能解决方案并不完美,望留言指教。
当然这只是一些自己瞎琢磨出来的方法,希望有和我一样爱闹腾的同学补充一下下,也希望大神见到后不吝指教,感激不尽。