1. display:none

   不为被隐藏的对象保留其物理空间,即该对象在页面上彻底消失,通俗来说就是看不见也摸不到。

    该方式让元素隐藏时,隐藏的元素不占空间,隐藏后将改变html原有样式,会触发重排和重绘,不可触发其对应的事件。一旦父节点元素应用了display:none,父节点及其子孙节点元素全部不可见,而且无论其子孙元素如何不屈地挣扎都无济于事。

    2. visibility:hidden

    该方式让元素隐藏时,隐藏的元素还是占用原有位置,所以它只会导致浏览器重绘而不会重排。隐藏后不将改变html原有样式,适用于那些元素隐藏后不希望页面布局会发生变化的场景,不可触发其对应的事件。可通过设置visibility:visible的话,将子元素将不被隐藏。

3. opacity:0

    设置元素的透明度为0,

     该方式让元素隐藏时,隐藏的元素还是占用原有位置,隐藏后不将改变html原有样式。但隐藏的元素所对应的事件,仍然可以触发。display属性不会出现过渡 即使添加了transition,opacity属性适合在隐藏元素时添加过渡效果。

4.设置height,width等盒模型属性为0这是我总结的一种比较奇葩的技巧,简单说就是将元素的margin,border,padding,height和width等影响元素盒模型的属性设置成0,如果元素内有子元素或内容,还应该设置其overflow:hidden来隐藏其子元素,这算是一种奇技淫巧。

这种方式既不实用,也可能存在着着一些问题。但平时我们用到的一些页面效果可能就是采用这种方式来完成的,比如jquery的slideUp动画,它就是设置元素的overflow:hidden后,接着通过定时器,不断地设置元素的height,margin-top,margin-bottom,border-top,border-bottom,padding-top,padding-bottom为0,从而达到slideUp的效果。

5.position: absolute; 设置一个很大的 left 负值定位,使元素定位在可见区域之外

6.filter: blur(0); CSS3属性,将一个元素的模糊度设置为0,从而使这个元素“消失”在页面中