CSS 布局 - display 属性。display 属性是用于控制布局的最重要的 CSS 属性。
display 属性规定是否/如何显示元素。每个 HTML 元素都有一个默认的 display 值,具体取决于它的元素类型。大多数元素的默认 display 值为 block 或 inline。
块级元素总是从新行开始,并占据可用的全部宽度(尽可能向左和向右伸展)。
这个 <div>
元素属于块级元素。
块级元素的一些例子:
<div>
<h1> - <h6>
<p>
<form>
<header>
<footer>
<section>
内联元素不从新行开始,仅占用所需的宽度。
这是段落中的行内 <span>
元素。
行内元素的一些例子:
<span>
<a>
<img>
display: none; 通常与 JavaScript 一起使用,以隐藏和显示元素,而无需删除和重新创建它们。如果您想知道如何实现此目标,请查看本页面上的最后一个实例。
默认情况下,<script>
元素使用 display: none;。
如前所述,每个元素都有一个默认 display 值。但是,您可以覆盖它。
将行内元素更改为块元素,反之亦然,对于使页面以特定方式显示同时仍遵循 Web 标准很有用。
一个常见的例子是为实现水平菜单而生成行内的 <li>
元素:
li {
display: inline;
}
设置元素的 display 属性仅会更改元素的显示方式,而不会更改元素的种类。因此,带有 display: block; 的行内元素不允许在其中包含其他块元素。下例将 元素显示为块元素:
span {
display: block;
}
下例将 <a>
元素显示为块元素:
a {
display: block;
}
通过将 display 属性设置为 none 可以隐藏元素。该元素将被隐藏,并且页面将显示为好像该元素不在其中。
visibility:hidden; 也可以隐藏元素。但是,该元素仍将占用与之前相同的空间。元素将被隐藏,但仍会影响布局:
值 描述
none 此元素不会被显示。
block 此元素将显示为块级元素,此元素前后会带有换行符。
inline 默认。此元素会被显示为内联元素,元素前后没有换行符。
inline-block 行内块元素。(CSS2.1 新增的值)
list-item 此元素会作为列表显示。
run-in 此元素会根据上下文作为块级元素或内联元素显示。
compact CSS 中有值 compact,不过由于缺乏广泛支持,已经从 CSS2.1 中删除。
marker CSS 中有值 marker,不过由于缺乏广泛支持,已经从 CSS2.1 中删除。
table 此元素会作为块级表格来显示(类似 <table>),表格前后带有换行符。
inline-table 此元素会作为内联表格来显示(类似 <table>),表格前后没有换行符。
table-row-group 此元素会作为一个或多个行的分组来显示(类似 <tbody>)。
table-header-group 此元素会作为一个或多个行的分组来显示(类似 <thead>)。
table-footer-group 此元素会作为一个或多个行的分组来显示(类似 <tfoot>)。
table-row 此元素会作为一个表格行显示(类似 <tr>)。
table-column-group 此元素会作为一个或多个列的分组来显示(类似 <colgroup>)。
table-column 此元素会作为一个单元格列显示(类似 <col>)
table-cell 此元素会作为一个表格单元格显示(类似 <td> 和 <th>)
table-caption 此元素会作为一个表格标题显示(类似 <caption>)
inherit 规定应该从父元素继承 display 属性的值。
<!DOCTYPE html>
<html lang="zh-cn">
<title>CSS显示 编程笔记 html5&css&js</title>
<meta charset="utf-8" />
<style>
body {
display: block;
color: cyan;
background-color: teal;
margin: 0;
text-align: center;
}
.container {
margin: 0 auto; /* 将左右边距设置为自动 */
text-align: center;
}
span {
display: block;
}
p {
display: inline;
}
</style>
<body>
<br />
<div class="container">
<span>把 span 元素设置为块级元素。</span>
<span>这是第二个 span 元素,本来这个元素是不换行的,现改成换行显示。</span>
</div>
<hr />
<div class="container">
<p>把段落元素设置为内联元素。</p>
<p>这里第二个p元素,但却被显示到一行了。</p>
</div>
<br />
</body>
</html>
disply属性可以灵活处理块的实际形态,把自动换行的元素可以改为不换行,反之亦然。这对网页的整体而已就很重要,因此设计网页布局时就一定要配合该属性的设置。