Menu

HTML span 标签:设置部分文字样式,div 与 span 的区别

<span> 标签是一个通用的行内容器:它包裹一行中的几个词,让你可以在不打断这一行的情况下为它们设置样式或用脚本处理。学习如何使用它、它和 div 有什么区别,以及什么时候用更具体的标签更合适。

本页包含可运行的编辑器。编辑、运行,立即查看输出。

span 标签的作用

<span> 包裹一行中的一段文字,让你可以为它设置样式,或者用 JavaScript 找到它。它是 <div> 的行内版本:没有含义,没有默认外观,而且不会另起一行。

这句话仍然在同一行上,只有被包裹的词发生了变化。

div 与 span 的区别

两者的用途完全相同(没有含义的容器),区别在于它们在页面上的排布方式:

div 把这句话断成了三行,并横跨整个页面;span 留在句子中,紧贴着自己的文字。

<div><span>
显示方式块级行内
另起一行是否
宽度占满全部可用宽度与内容一样宽
width、height、上下外边距生效被忽略
可以包含任何内容,包括块级元素只能是文字和行内元素
典型用途区块、卡片、布局包裹元素文字中的一个词或短语

还有一个区别:<p> 中不允许放 <div>,如果你这样做,浏览器会提前结束这个段落;而 span 可以放在任何能放文字的地方。更多内容参见 div 页面。

给 span 设置样式:哪些有效,哪些无效

颜色、字体、背景和左右内边距在 span 上都有效。尺寸则无效:行内元素会忽略 width、height 以及上下外边距。把它改成 inline-block,就能在留在行内的同时设置尺寸:

第一个 span 的宽度只和它的文字一样。第二个正好是 120 x 40 像素,而且仍然位于句子中。

在 JavaScript 中使用 span

span 通常用作占位元素,用来放脚本填入的值,比如计数器或用户名:

只有数字在变化,句子的其余部分保持不变。

什么时候用具体的标签比 span 更好

span 没有含义,所以屏幕阅读器会把它当作普通文字来读。当这些词有特定作用时,就使用对应作用的标签,再按你的喜好设置样式:

含义代替 span 使用
重要的文字<strong>
强调语气<em>
高亮或标记的文字<mark>
代码、文件名<code>
键盘按键<kbd>
日期或时间<time datetime="2026-09-24">
其他语言的文字<span lang="fr">(span 加上 lang 属性)

加粗页面解释了 <strong>、<b>、<em> 和 <i> 之间的区别。

常见错误

  • 给普通的 span 设置 width。它会被忽略。请使用 display: inline-block。
  • 在 span 里放 div 或段落。这是无效的 HTML,会打断这一行。把外层的 span 换成 div。
  • 可点击的 span。和 div 一样,带 onclick 的 span 无法用键盘访问。请使用 <button> 或链接。
  • 每种样式都用一个 span。如果整个段落或区块都需要某种样式,就把 class 加在 <p> 或容器本身上,而不是用 span 包裹它的文字。

常见问题

HTML 中的 span 是什么?

<span> 是一个通用的行内容器。它包裹一行文字中的一部分,比如一个词,让 CSS 或 JavaScript 可以选中它。它本身没有任何外观或含义。

div 和 span 有什么区别?

<div> 是块级元素:它从新的一行开始,占满整个宽度。<span> 是行内元素:它留在这一行文字中,宽度只和内容一样。用 div 给成块的内容分组,用 span 标记文字中的词。

为什么给 span 设置 width 不生效?

行内元素会忽略 width、height 和上下外边距。给 span 设置 display: inline-block,它就能在留在行内的同时接受尺寸;设置 display: block,它就会表现得像 div 一样。

如何在 HTML 中改变一个词的颜色?

用带 class 的 span 把这个词包起来,再在 CSS 中给它上色:<span class="accent">word</span> 配合 .accent { color: #2563eb; }。如果只是临时用一次,<span style="color: #2563eb">word</span> 也可以。

span 里可以放 div 吗?

不可以。span 只能包含行内内容,比如文字、链接、图片和其他 span。浏览器仍然会显示 span 中的 div,但这是无效的 HTML,而且会打断这一行,所以应该把外层元素改成 div。

Coddy 编程语言插图

和 Coddy 一起学编程

开始