css-如何让一个元素消失

0 阅读1分钟

遇到一些需要让一个元素,不可视,但是dom 结构不能从dom 树中消失

依然存在于dom 树中

  1. Visibility hidden : 此方法,不可触发当期元素绑定事件, 仅会触发重绘
  2. opacity ,方法,不可触发当期元素绑定事件,会提升至合成层,不重绘,重流
  3. width height 均设置为0
  4. background 设置为transparent

不再存在于dom树中

  1. display none , 触发重绘重流,因从dom树中,消失了,所以绑定所有事件,全部失效

总结

是否占据页面空间opacity: 0visibility: hiddendisplay: none
子元素设置该属性其他值是否可以继续显示不可以可以不可以
自身绑定的事件是否能触发能触发不能触发不能触发
是否影响遮挡住的元素触发事件影响不影响不影响
属性值改变回流(reflow)不产生不产生产生
属性值改变生重绘(repaint)不一定产生产生产生
该属性是否支持transition支持支持不支持