2025-09-20 00:59:36 今天世界杯

区块盒子与行内盒子

在 CSS 中,我们有几种类型的盒子,一般分为区块盒子(block boxes)和行内盒子(inline boxes)。类型指的是盒子在页面流中的行为方式以及与页面上其他盒子的关系。盒子有内部显示(inner display type)和外部显示(outer display type)两种类型。

一般来说,可以使用 display 属性为显示类型设置各种值,该属性可以有多种值。

外部显示类型

一个拥有 block 外部显示类型的盒子会表现出以下行为:

盒子会产生换行。

width 和 height 属性可以发挥作用。

内边距、外边距和边框会将其他元素从当前盒子周围“推开”。

如果未指定 width,方框将沿行向扩展,以填充其容器中的可用空间。在大多数情况下,盒子会变得与其容器一样宽,占据可用空间的 100%。

某些 HTML 元素,如

,默认使用 block 作为外部显示类型。

一个拥有 inline 外部显示类型的盒子会表现出以下行为:

盒子不会产生换行。

width 和 height 属性将不起作用。

垂直方向的内边距、外边距以及边框会被应用但是不会把其他处于 inline 状态的盒子推开。

水平方向的内边距、外边距以及边框会被应用且会把其他处于 inline 状态的盒子推开。

某些 HTML 元素,如 以及 ,默认使用 inline 作为外部显示类型。

内部显示类型

盒子还有内部显示类型,它决定了盒子内元素的布局方式。

区块和行内布局是网络上的默认行为方式。默认情况下,在没有任何其他指令的情况下,方框内的元素也会以标准流的方式布局,并表现为区块或行内盒子。

例如,可以通过设置 display: flex; 来更改内部显示类型。该元素仍将使用外部显示类型 block 但内部显示类型将变为 flex。该方框的任何直接子代都将成为弹性(flex)项,并按照弹性盒子规范执行。

当你继续详细学习 CSS 布局时,将会遇到 flex 以及盒子可以具有的其他各种内部值,例如 grid。

备注:

想要了解更多有关显示值以及盒子在区块和行内布局中的工作原理,请参阅常规流中的区块和行内布局。

不同显示类型的例子

下面的示例中有三个不同的 HTML 元素,它们的外部显示类型都是 block。

在 CSS 中添加了边框的段落。浏览器会将其渲染为一个盒子框。段落从新行开始,并扩展整个可用宽度。

使用 display: flex 布局的列表。这就为容器的子项(即弹性项)建立了弹性布局。列表本身是一个区块盒子,与段落一样,会扩展到整个容器的宽度,然后换行。

一个块级段落,内含两个 元素。这些元素通常是 inline,但是其中一个元素的类是 block,令其被设置为 display: block。

html

I am a paragraph. A short one.

  • Item One
  • Item Two
  • Item Three

I am another paragraph. Some of the words have been

wrapped in a span element.

cssbody {

font-family: sans-serif;

}

p,

ul {

border: 2px solid rebeccapurple;

padding: 0.2em;

}

.block,

li {

border: 2px solid blue;

padding: 0.2em;

}

ul {

display: flex;

list-style: none;

}

.block {

display: block;

}

在下一个示例中,我们可以看到 inline 元素是如何表现的。

第一段中的 元素默认为行级,因此不会强制换行。

设置为 display: inline-flex 的