块元素和行内元素,是HTML中极其重要的概念,同时也是学习CSS的重要基础知识。对于这一节的内容,小伙伴们要重点掌握,千万不要跳过了。

在之前的学习中,小伙伴可能会发现:在浏览器预览效果,有些元素是独占一行的,其他元素不能跟这个元素位于同一行,如p、div、hr等。而有些元素不是独占一行的,其他元素可以跟这个元素位于同一行,如strong、em等。特别注意一下,这里所谓的“独占一行”,并不是在HTML代码里独占一行,而是在浏览器显示效果中独占一行。

注:标签,也叫“元素”,例如p标签又叫p元素。叫法不同,意思相同。这一节使用“元素”来称呼,也是让大家熟悉这两种叫法。

在HTML中,根据元素的表现形式,一般可以分为两类(暂时不考虑inline-block)。

  • (1)块元素(block)
  • (2)行内元素(inline)

一、块元素

在HTML中,块元素在浏览器显示状态下将占据整一行,并且排斥其他元素与其位于同一行。此外,一般情况下,块元素内部可以容纳其他块元素和行内元素。

表1 HTML常见块元素
块元素 说明
h1~h6 标题元素
p 段落元素
div div元素
hr 水平线
ol 有序列表
ul 无序列表

上表列举的是HTML入门阶段常见的块元素,而并不是全部。光说不练假把式,咱们还是先来看一个例子。

举例:

<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>块元素和行内元素</title> </head> <body> <div> <h3>绿叶学习网</h3> <p>“绿叶,给你初恋般的感觉。”</p> <strong>绿叶学习网</strong> <em>“绿叶,给你初恋般的感觉。”</em> </div> </body> </html>

浏览器预览效果如下图所示:

分析:

上面为每一个元素加入虚线框来分析它们的结构,从中我们可以很容易得出以下结论。

  • (1)h3和p是块元素,它们的显示效果都是独占一行的,并且排斥任何元素跟它们位于同一行; strong和em是行内元素,即使代码不是位于同一行,它们的显示效果也是位于同一行的(显示效果跟你代码是否位于同一行没有关系)。
  • (2)h3、p、strong和em元素都是在div元素内部的,也就是说,块元素内部可以容纳其他块元素和行内元素。

由此,我们可以总结出块元素具有以下两个特点。

  • (1)块元素独占一行,排斥其他元素(包括块元素和行内元素)与其位于同一行。
  • (2)块元素内部可以容纳其他块元素和行内元素。

二、行内元素

在HTML中,行内元素跟块元素恰恰相反,行内元素是可以与其他行内元素位于同一行的。此外,行内元素内部(标签内部)只可以容纳其他行内元素,不可以容纳块元素。

表2 HTML常见行内元素
行内元素 说明
strong 粗体元素
em 斜体元素
a 超链接
span 常用行内元素,结合CSS定义样式

对于行内元素效果,可以看块元素的例子,从这个例子我们可以总结出行内元素具有以下两个特点。

  • (1)行内元素可以与其他行内元素位于同一行。
  • (2)行内元素内部可以容纳其他行内元素,但不可以容纳块元素。

块元素和行内元素非常复杂,大家在这一节重点理解其概念就行了,而不需要去记忆块元素有哪些、行内元素有哪些。