1.display:none
不占据空间,把元素隐藏起来,所以动态改变此属性时会引起重排(改变页面布局),可以理解成在页面中把该元素删除掉一样;不会被子孙继承,但是其子孙是不会显示的,毕竟都一起被隐藏了。
2. opacity:0
只是透明度为100%,元素隐藏,依然占据空间,隐藏后不会改变html原有样式;会被子元素继承,且子元素并不能通过opacity=1,进行反隐藏;opacity:0的元素依然能触发已经绑定的事件。
3. visibility:hidden
元素会被隐藏,但是不会消失,依然占据空间,隐藏后不会改变html原有样式;会被子孙继承,子孙也可以通过显示的设置visibility: visible;来反隐藏;不会触发该元素已经绑定的事件, 动态修改此属性会引起重绘。