CSS 布局 - display 属性
display 属性是用于控制布局的最重要的 CSS 属性。
display 属性
display 属性规定是否/如何显示元素。
每个 HTML 元素都有一个默认的 display 值,具体取决于它的元素类型。大多数元素的默认 display 值为 block 或 inline。
点击这里显示面板
此面板包含一个 <div> 元素,它默认是隐藏的。(display: none)
它由 CSS 设置样式,我们使用 JavaScript 显示它。(更改为 display: block)
块级元素(block element)
块级元素总是从新行开始,并占据可用的全部宽度(尽可能向左和向右伸展)。
这个 <div> 元素属于块级元素。
块级元素的一些例子:
- <div>
- <h1> - <h6>
- <p>
- <form>
- <header>
- <footer>
- <section>
行内元素(inline element)
内联元素不从新行开始,仅占用所需的宽度。
这是段落中的行内 <span> 元素。
行内元素的一些例子:
- <span>
- <a>
- <img>
Display: none;
display: none; 通常与 JavaScript 一起使用,以隐藏和显示元素,而无需删除和重新创建它们。如果您想知道如何实现此目标,请查看本页面上的最后一个实例。
默认情况下,<script> 元素使用 display: none;。
覆盖默认的 Display 值
如前所述,每个元素都有一个默认 display 值。但是,您可以覆盖它。
将行内元素更改为块元素,反之亦然,对于使页面以特定方式显示同时仍遵循 Web 标准很有用。
一个常见的例子是为实现水平菜单而生成行内的 <li> 元素:
<!DOCTYPE html><html><head><style>li {display: inline;}</style></head><body><p>把链接列表显示为水平导航栏:</p><ul><li><a href="/html/html-course.html" target="_blank">HTML</a></li><li><a href="/css/css-course.html" target="_blank">CSS</a></li><li><a href="/js/js-course.html" target="_blank">JavaScript</a></li></ul></body></html>
注意:设置元素的 display 属性仅会更改元素的显示方式,而不会更改元素的种类。因此,带有 display: block; 的行内元素不允许在其中包含其他块元素。
下例将 <span> 元素显示为块元素:
<!DOCTYPE html><html><head><style>span {display: block;}</style></head><body><span>值为 "block" 的 display 属性会导致</span><span>两元素间的换行。</span></body></html>
下例将 <a> 元素显示为块元素:
<!DOCTYPE html><html><head><style>a {display: block;}</style></head><body><p>把链接显示为块元素:</p><a href="/html/html-course.html" target="_blank">HTML</a><a href="/css/css-course.html" target="_blank">CSS</a><a href="/js/js-course.html" target="_blank">JavaScript</a></body></html>
隐藏元素 - display:none 还是 visibility:hidden?
display:none
visibility:hidden
Reset
通过将 display 属性设置为 none 可以隐藏元素。该元素将被隐藏,并且页面将显示为好像该元素不在其中:
<!DOCTYPE html><html><head><style>h1.hidden {display: none;}</style></head><body><h1>这是一个可见的标题</h1><h1 class="hidden">这是一个隐藏的标题</h1><p>请注意, display: none; 的标题不会占用任何空间。</p></body></html>
visibility:hidden; 也可以隐藏元素。
但是,该元素仍将占用与之前相同的空间。元素将被隐藏,但仍会影响布局:
<!DOCTYPE html><html><head><style>h1.hidden {visibility: hidden;}</style></head><body><h1>这是可见的标题</h1><h1 class="hidden">这是隐藏的标题</h1><p>请注意,隐藏的标题仍然占据空间。</p></body></html>
CSS Display/Visibility 属性
| 属性 | 描述 |
|---|---|
| display | 指定应如何显示元素。 |
| visibility | 指定元素是否应该可见。 |