遇到一些需要让一个元素,不可视,但是dom 结构不能从dom 树中消失
依然存在于dom 树中
- Visibility hidden : 此方法,不可触发当期元素绑定事件, 仅会触发重绘
- opacity ,方法,不可触发当期元素绑定事件,会提升至合成层,不重绘,重流
- width height 均设置为0
- background 设置为transparent
不再存在于dom树中
- display none , 触发重绘重流,因从dom树中,消失了,所以绑定所有事件,全部失效
总结
是否占据页面空间 | opacity: 0 | visibility: hidden | display: none |
---|---|---|---|
子元素设置该属性其他值是否可以继续显示 | 不可以 | 可以 | 不可以 |
自身绑定的事件是否能触发 | 能触发 | 不能触发 | 不能触发 |
是否影响遮挡住的元素触发事件 | 影响 | 不影响 | 不影响 |
属性值改变回流(reflow) | 不产生 | 不产生 | 产生 |
属性值改变生重绘(repaint) | 不一定产生 | 产生 | 产生 |
该属性是否支持transition | 支持 | 支持 | 不支持 |