引入

HTML 元素在页面中显示时,有些会独占一行,有些只占自己内容的宽度。

理解块级元素和行内元素,可以帮助判断标签在页面中的默认排列方式。

正文

定义

定义

块级元素通常会独占一行,行内元素通常不会独占一行,只占据内容本身需要的宽度。

这是 HTML 元素默认显示方式的一种常见分类。

真正控制显示效果的是 CSS 的 display 属性,但初学 HTML 时先理解默认表现很有用。

块级元素

块级元素通常从新的一行开始,并尽量占满父元素的宽度。

<div>第一块内容</div>
<div>第二块内容</div>

这两个 <div> 默认会分别显示在两行。

常见块级元素:

  • <div>
  • <p>
  • <h1><h6>
  • <ul><ol><li>
  • <table>
  • <header><main><section><article><footer>

行内元素

行内元素通常不会独占一行,会和其他文字或行内元素排在同一行。

<p>这是一个 <span>行内元素</span> 示例。</p>

<span> 默认不会让内容换行。

常见行内元素:

  • <span>
  • <a>
  • <strong>
  • <em>
  • <img>
  • <label>
  • <code>

<div>

<div> 是最常见的块级容器。

<div>
  <h2>标题</h2>
  <p>这里是一块内容。</p>
</div>

它本身没有语义,常用于包裹一组内容,再配合 CSS 做布局。

<span>

<span> 是最常见的行内容器。

<p>这是一段 <span>被单独标记</span> 的文字。</p>

它本身也没有语义,常用于标记一小段文字,再配合 CSS 或 JavaScript 处理。

行内块元素

还有一种常见显示方式叫 inline-block,它表现得像行内元素一样不强制换行,但又可以设置宽高。

HTML 中不需要专门的标签表示它,通常用 CSS 设置。

<span style="display: inline-block; width: 100px;">项目</span>

这里了解即可,具体控制方式放到 CSS 中学习。

简单对比

<div>块级元素 1</div>
<div>块级元素 2</div>
 
<span>行内元素 1</span>
<span>行内元素 2</span>

默认情况下,两个 <div> 会分行显示,两个 <span> 会排在同一行。

特点

  • 块级元素通常独占一行
  • 块级元素默认宽度通常会占满父容器
  • 行内元素通常不会独占一行
  • 行内元素默认只占内容需要的宽度
  • <div> 是常见块级容器
  • <span> 是常见行内容器
  • 默认显示方式可以通过 CSS 的 display 改变

注意事项

  • 不要只为了换行就乱用块级元素,结构要有意义
  • 不要只为了选中文字就滥用 <span>,能用语义标签时优先用语义标签
  • <p> 里面不适合放复杂块级结构
  • 块级和行内的显示效果最终可以由 CSS 改变
  • HTML 负责结构,布局细节更多交给 CSS

理解

可以把块级元素理解为“页面中的一整块区域”,通常会自己占一行。

可以把行内元素理解为“文字流中的一小段内容”,通常跟着文字一起排列。

它们的区别主要是默认显示方式,不是元素重要程度的区别。

引出

理解块级元素和行内元素之后,可以继续学习 CSS 中的 display、盒模型和页面布局。