CSS Display(显示)和Visibility(可见性)
一、简介
display属性设置一个元素应如何显示(隐藏不占用空间),visibility属性指定一个元素应可见还是隐藏(隐藏占用空间)。
二、隐藏元素 - display:none或visibility:hidden
隐藏一个元素可以通过把display属性设置为"none",或把visibility属性设置为"hidden"。但是请注意,这两种方法会产生不同的结果。
visibility:hidden可以隐藏某个元素,但隐藏的元素仍需占用与未隐藏之前一样的空间。也就是说,该元素虽然被隐藏了,但仍然会影响布局。
h1.hidden {visibility:hidden;}
display:none可以隐藏某个元素,且隐藏的元素不会占用任何空间。也就是说,该元素不但被隐藏了,而且该元素原本占用的空间也会从页面布局中消失。
h1.hidden {display:none;}
三、CSS Display - 块和内联元素
块元素是一个元素,占用了全部宽度,在前后都是换行符。
块元素的例子:
- <h1>
- <p>
- <div>
内联元素只需要必要的宽度,不强制换行。
内联元素的例子:
- <span>
- <a>
四、如何改变一个元素显示
可以更改内联元素和块元素,反之亦然,可以使页面看起来是以一种特定的方式组合,并仍然遵循web标准。
下面的示例把列表项显示为内联元素:
li {display:inline;}
下面的示例把span元素作为块元素:
span {display:block;}
注意:变更元素的显示类型看该元素是如何显示,它是什么样的元素。例如:一个内联元素设置为display:block是不允许有它内部的嵌套块元素。
五、示例
(1)示例1:何显示一个元素的内联元素
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>CSS教程</title> <style> p {display:inline;} </style> </head> <body> <p>display 属性的值为 "inline"的结果</p> <p>两个元素显示在同一水平线上。</p> </body> </html>
效果:
(2)示例2:显示一个元素的块元素
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>CSS教程</title> <style> span { display:block; } </style> </head> <body> <span>display 属性值为 "block" 的结果</span> <span>这两个元素之间的换行符。</span> </body> </html>
效果:
(3)示例3:何使用表的collapse属性
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>CSS教程</title> <style> table, th, td { border: 1px solid black; } tr.collapse { visibility: collapse; } </style> </head> <body> <table> <tr> <th>Firstname</th> <th>Lastname</th> </tr> <tr> <td>Peter</td> <td>Griffin</td> </tr> <tr class="collapse"> <td>Lois</td> <td>Griffin</td> </tr> </table> <p><b>注意:</b> IE8 及其更早版本需要通过指定 !DOCTYPE 才可以支持 visibility:collapse。</p> </body> </html>
效果: