请稍候,加载中....

CSS Display、Visibility

display属性设置一个元素应如何显示,可以将一个元素显示特性设置为块级元素也可以设置为行级元素,visibility属性指定一个元素应可见还是隐藏。

隐藏元素

display:none或visibility:hidden

隐藏一个元素可以通过把display属性设置为"none",或把visibility属性设置为"hidden"。但是请注意,这两种方法会产生不同的结果。

visibility隐藏实例

visibility:hidden可以隐藏某个元素,但隐藏的元素仍需占用与未隐藏之前一样的空间。也就是说,该元素虽然被隐藏了,但仍然会影响布局。

<style>
h1.hidden {visibility:hidden;}
</style>
</head>

<body>
<h1>这是一个可见标题</h1>
<h1 class="hidden">这是一个隐藏标题</h1>
<p>注意, 实例中的隐藏标题仍然占用空间。</p>
</body>

display隐藏实例

display:none可以隐藏某个元素,且隐藏的元素不会占用任何空间。也就是说,该元素不但被隐藏了,而且该元素原本占用的空间也会从页面布局中消失。

<style>
h1.hidden {display:none;}
</style>
</head>
<body>
	
<h1>这是一个可见标题</h1>
<h1 class="hidden">这是一个隐藏标题</h1>
<p>注意, 实例中的隐藏标题不占用空间。</p>
	
</body>

块和内联元素

块元素是一个元素,占用了全部宽度,在前后都是换行符。

块元素的例子:

  • <h1>
  • <p>
  • <div>

内联元素只需要必要的宽度,不强制换行。

内联元素的例子:

  • <span>
  • <a>

改变一个元素原始的块级或者行级显示特性

通过display可以更改内联元素和块元素,反之亦然,可以使页面看起来是以一种特定的方式组合,并仍然遵循web标准。

下面的示例把列表项显示为内联元素:

更改块级元素为行级元素实例

<style>
li{display:inline;}
</style>
</head>
<body>

<p>链接列表水平显示:</p>

<ul>
<li><a href="/html/" target="_blank">HTML</a></li>
<li><a href="/css/" target="_blank">CSS</a></li>
<li><a href="/js/" target="_blank">JavaScript</a></li>
<li><a href="/xml/" target="_blank">XML</a></li>
</ul>

</body>

更改行级元素为块级元素实例

span默认为行级元素,不会折行=, 通过设置display: block,发生了变化

<style>
span
{
	display:block;
}
</style>
</head>
<body>

<h2>Nirvana</h2>
<span>Record: MTV Unplugged in New York</span>
<span>Year: 1993</span>
<h2>Radiohead</h2>
<span>Record: OK Computer</span>
<span>Year: 1997</span>

</body>

注意:变更元素的显示类型看该元素是如何显示,它是什么样的元素。例如:一个内联元素设置为display:block是不允许有它内部的嵌套块元素。

更多显示实例

这个例子演示了如何显示一个元素的内联元素。

<style>
p {display:inline; border: 1px solid red;}
</style>
</head>

<body>
<p>display 属性的值为 "inline"的结果</p>
<p>两个元素显示在同一水平线上。</p>
</body>

这个例子演示了如何显示一个元素的块元素。

<style>
span{display:block; border: 1px solid red;}
</style>
</head>
<body>

<span>display 属性值为 "block" 的结果</span> <span>这两个元素之间的换行符。</span>

</body>

这个例子演示了如何使用表的collapse属性。

其他元素使用visibility: collapse;相当于visibility: hidden;对于表格来说,相当于display: none

<style>
table, th, td {
  border: 1px solid black;
}
tr.hidden {
   visibility: hidden;
}
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>
 <tr> <td>Peter</td> <td>Griffin</td> </tr>
<tr class="hidden"> <td>Lois</td> <td>Griffin</td> </tr>
 <tr> <td>Peter</td> <td>Griffin</td> </tr>
</table>

<p><b>注意:</b> IE8 及其更早版本需要通过指定 !DOCTYPE 才可以支持 visibility:collapse。</p>

</body>

 


Python学习手册-