visibility=hidden, opacity=0,display:none
| display: none | visibility: hidden | opacity: 0 |
占有空间 | × | √ | √ |
进行DOM事件监听 | × | × | √ |
点击 | × | × | √ |
被子元素继承 | × | √ | √ |
子元素能否通过改变属性值来改变继承自父亲的隐藏状态 | × | √ | × |
打个比方: display: none: 从这个世界消失了, 不存在了; opacity: 0: 视觉上隐身了, 看不见, 可以触摸得到; visibility: hidden: 视觉和物理上都隐身了, 看不见也摸不到, 但是存在的;
==附加题:CSS 隐藏页面上的一个元素有哪几种方法?==
- display:none,visibility:hiden,opacity:0 这三种;
- 设置 fixed 并设置足够大负距离的 left top 使其“隐藏”;
- 用层叠关系 z-index 把元素叠在最底下使其“隐藏”;
- 用 text-indent:-9999px 使其文字隐藏。