HTML Academy · 课时

span 与 div 元素

使用通用的行内容器和块内容器作为样式挂钩。

第 4 / 4 课13 个步骤

span 与 div 元素 是 CoddyKit 上的免费 HTML Academy 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 HTML Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 HTML Academy 课程共包含 4 节课。

通用容器

HTML 有两个通用的、语义中立的容器元素:

  • <div> — 块级容器
  • <span> — 行内容器

它们本身不承载任何含义,只是作为设置样式和编写脚本的挂钩。

div 元素

<div> 是块级容器,会在前后各创建一个新行:

<div class="card">
  <h2>Card Title</h2>
  <p>Card content here.</p>
</div>

<div class="sidebar">
  <p>Sidebar content.</p>
</div>
<!-- div groups related elements for CSS layout or JavaScript selection -->

span 元素

<span> 是行内容器,会在文本中随内容流动:

<p>The price is <span class="price">$29.99</span> per month.</p>

<p>Error: <span class="error-text" role="alert">Invalid email address</span></p>

<!-- span targets a part of text for styling or scripting
     without adding block-level line breaks -->

何时使用 div 而不是语义元素

使用 <div> 之前,请检查是否有合适的语义元素:

  • 页面页眉 → <header>
  • 导航 → <nav>
  • 主要内容 → <main>
  • 博客文章 → <article>
  • 侧边栏 → <aside>
  • 页面页脚 → <footer>

只有在没有适用的语义元素时,才使用 <div>。

容器元素滥用症

容器元素滥用症 — 什么内容都过度使用 <div>:

<!-- Divitis: meaningless nesting -->
<div class="header">
  <div class="nav">
    <div class="nav-item"><a href="/">Home</a></div>
  </div>
</div>

<!-- Better: semantic HTML -->
<header>
  <nav>
    <a href="/">Home</a>
  </nav>
</header>

使用 class 和 id 创建 CSS 钩子

<div> 和 <span> 都可以与 class 或 id 属性结合使用,以便让 CSS 定位:

<div class="hero-section">
  <h1>Welcome</h1>
  <p>Text with a <span class="highlight">highlighted phrase</span> inside.</p>
</div>

<!-- CSS: -->
<!--
.hero-section { background: #f0f4f8; padding: 2rem; }
.highlight { background-color: yellow; font-weight: bold; }
-->

JavaScript 定位

<div> 和 <span> 也可以作为 JavaScript 的定位目标:

<span id="counter">0</span>

<script>
  const counter = document.getElementById('counter');
  let count = 0;
  setInterval(() => {
    count++;
    counter.textContent = count;
  }, 1000);
</script>

嵌套规则

通用容器的嵌套规则:

  • <div> 可以包含 <div> 和 <span>
  • <span> 只能包含 <span> 和行内内容
  • 不要将 <div> 放在 <span> 内部
<span>
  Inline text
  <span>Nested span OK</span>
  <!-- <div> inside span: INVALID -->
</span>

使用 div 进行布局

使用 div 进行布局的常见模式:

<div class="layout">
  <div class="sidebar"><!-- sidebar --></div>
  <div class="content"><!-- main content --></div>
</div>

<!-- CSS Grid layout: -->
<!--
.layout { display: grid; grid-template-columns: 250px 1fr; gap: 1rem; }
-->

使用 span 设置行内样式

常见的行内样式模式:

<p>Status: <span class="badge badge-success">Active</span></p>

<p>Price: <span style="color: red; text-decoration: line-through;">$50</span>
        <span style="color: green; font-weight: bold;">$30</span></p>

div 和 span 不可见

默认情况下,<div> 和 <span> 都是不可见的包装器:

  • <div> 除了块级显示外不会添加任何视觉样式
  • <span> 完全不会添加样式
  • 所有外观都来自您应用的 CSS
  • 因此它们非常适合作为中性容器

快速检查

要设置段落中单个词语的样式,应使用哪个元素?

回顾:span 和 div

通用容器的要点:

  • <div> — 块级元素,用于为布局分组元素
  • <span> — 行内元素,用于定位文本片段并设置样式
  • 二者在语义上都是中性的,不添加任何含义
  • 适用时优先使用 HTML5 语义元素
  • 使用 class 和 id 将它们连接到 CSS 和 JavaScript
免费开始

用 AI 导师学习 HTML — 免费

在浏览器中编写并运行真实代码,获得全天候 AI 导师的即时帮助,并在网页或应用中继续学习。

课程
40
课程
159

常见问题解答

「span 与 div 元素」课时是免费的吗?

是的 — 「span 与 div 元素」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 HTML Academy 课程的其余内容,请升级到 CoddyKit PRO。 HTML Academy 课程共包含 4 节课。

「span 与 div 元素」这节课中我会学到什么?

使用通用的行内容器和块内容器作为样式挂钩。 你通过在浏览器中直接运行的动手代码来练习 HTML Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 HTML Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 HTML Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。

「span 与 div 元素」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 HTML Academy 课中编写并运行代码吗?

能。每节 HTML Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 标题 h1-h6 及其层级
  2. 段落、em、strong、b 与 i
  3. br、hr、blockquote 与 pre
  4. span 与 div 元素
← 返回 HTML Academy