使用 CSS 让元素不可见的方法有很多种, 裁剪, 定位到屏幕外边, 透明度变换等都是可以的. 但是最常用两种方式就是设置元素样式为 display: none 或者 visibility: hidden.
display 与元素的隐藏
如果给一个元素设置了 display: none, 那么该元素以及它的所有后代元素都会隐藏, 它是前端开发人员使用频率最高的一种隐藏方式. 隐藏后的元素无法点击, 无法使用屏幕阅读器等辅助设备访问, 占据的空间消失.
- <body>
- <div>
- <strong > 给元素设置 display:none 样式 </strong>
- <p>A 元素 </p>
- <p style='display:none;'>B 元素 </p>
- <p>C 元素 </p>
- </div>
- </body>
效果图:
visibility 与元素的隐藏
给元素设置 visibility: hidden 也可以隐藏这个元素, 但是隐藏元素仍需占用与未隐藏时一样的空间, 也就是说虽然元素不可见了, 但是仍然会影响页面布局.
- <body>
- <div>
- <strong > 给元素设置 visibility:hidden 样式 </strong>
- <p>A 元素 </p>
- <p style='visibility:hidden;'>B 元素 </p>
- <p>C 元素 </p>
- </div>
- </body>
效果图:
display: none 与 visibility: hidden 的区别
很多前端的同学认为 visibility: hidden 和 display: none 的区别仅仅在于 display: none 隐藏后的元素不占据任何空间, 而 visibility: hidden 隐藏后的元素空间依旧保留 , 实际上没那么简单, visibility 是一个非常有故事性的属性
1,visibility 具有继承性, 给父元素设置 visibility:hidden; 子元素也会继承这个属性. 但是如果重新给子元素设置 visibility: visible, 则子元素又会显示出来. 这个和 display: none 有着质的区别
2,visibility: hidden 不会影响计数器的计数, 如图所示, visibility: hidden 虽然让一个元素不见了, 但是其计数器仍在运行. 这和 display: none 完全不一样
- <body>
- <div>
- <strong > 给元素设置 visibility:hidden 样式 </strong>
- <ol>
- <li > 元素 1</li>
- <li style="visibility:hidden;"> 元素 2</li>
- <li > 元素 3</li>
- <li > 元素 4</li>
- </ol>
- </div>
- <div>
- <strong > 给元素设置 display:none 样式 </strong>
- <ol>
- <li > 元素 1</li>
- <li style="display:none;"> 元素 2</li>
- <li > 元素 3</li>
- <li > 元素 4</li>
- </ol>
- </div>
- </body>
效果图:
来源: http://www.css88.com/qa/css3/12694.html