HTML5 引入了一系列语义化标签,用于明确描述页面内容的结构和含义,提升代码可读性、可维护性以及对搜索引擎和辅助技术的友好性。以下是常见的 HTML5 语义化标签列表:

  1. <header>
    定义页面或section的头部,通常包含标题、logo、导航等。
  2. <footer>
    定义页面或section的底部,通常包含版权信息、联系方式、相关链接等。
  3. <nav>
    定义导航区域,包含页面的主要导航链接。
  4. <main>
    定义页面的主要内容区域,一个页面通常只有一个<main>,且不包含头部、底部、侧边栏等重复内容。
  5. <article>
    定义独立的、完整的内容块(如文章、博客、评论、新闻等),可独立于页面其他内容存在。
  6. <section>
    定义页面中的一个主题性区域(如章节、板块),通常包含相关内容的集合,需有明确的主题。
  7. <aside>
    定义与主要内容相关的辅助信息(如侧边栏、注释、引用、广告等),通常与主内容关联但非必需。
  8. <hgroup>
    用于组合多个相关的标题(如主标题+副标题),明确它们的层级关系。
  9. <figure>
    定义独立的媒体内容(如图像、图表、视频等),通常与<figcaption>配合使用。
  10. <figcaption>
    <figure>中的媒体内容提供标题或说明,位于<figure>内部。
  11. <time>
    定义日期或时间,便于机器识别(如<time datetime="2023-10-01">2023年10月1日</time>)。
  12. <mark>
    定义需要突出显示的文本(如搜索结果中的关键词)。
  13. <details>
    定义可展开/折叠的详情区域,通常与<summary>配合使用。
  14. <summary>
    <details>提供可见的标题,点击可展开/折叠详情内容。
  15. <dialog>
    定义对话框或弹窗(如模态框),可通过open属性控制显示状态。
  16. <address>
    定义联系信息(如作者地址、邮箱、电话等),通常与<article><body>关联。

这些标签的核心作用是通过语义化描述内容结构,替代传统的<div>+class模式,使代码更具可读性和语义化,同时优化SEO和无障碍访问。

HTML5 的语义化标签在不同浏览器中会有一些默认样式,但样式通常非常简单(主要是基础的布局和显示方式),且不同浏览器之间可能存在细微差异。以下是常见语义化标签的默认样式特点:

  1. 块级语义标签(默认 display: block
    大部分结构型语义标签默认是块级元素,会独占一行,前后自动换行,例如:

    • <header>, <footer>, <nav>, <main>, <article>, <section>, <aside>, <address>
      它们的默认样式通常只有 display: block,没有默认的边距(margin)、内边距(padding)或边框,需要通过 CSS 自定义样式。
  2. 特殊显示样式的标签

    • <hgroup>:默认 display: block,但本身没有额外样式,仅用于组合标题(<h1>-<h6>),标题的默认样式(字体大小、粗细、边距)由其自身决定。
    • <figure>:默认 display: block,部分浏览器(如 Chrome、Firefox)会给它设置默认的 margin: 1em 40px(上下 1em,左右 40px),需要注意重置。
    • <figcaption>:默认 display: block,部分浏览器会继承 <figure> 的文本样式,通常无特殊样式。
    • <mark>:默认会添加 黄色背景色background-color: yellow)和 黑色文本,用于突出显示文本,这是少数自带明显视觉样式的标签。
    • <details>:默认 display: block,浏览器会自带展开/折叠的交互样式(如箭头图标),不同浏览器的图标样式可能不同(例如 Chrome 是三角形,Firefox 可能是其他形状)。
    • <summary>:默认 display: list-item(类似列表项),因此会显示默认的列表标记(通常是箭头),点击时触发 <details> 的展开/折叠。
    • <dialog>:默认会以“弹窗”形式显示,居中对齐,带有默认的边框、背景色和内边距,open 属性控制其可见性(默认隐藏)。
    • <time>:默认 display: inline(行内元素),无特殊样式,仅语义上表示时间。
  3. 无默认样式的标签
    部分语义标签仅提供语义,完全没有默认样式(与 <span><div> 类似,仅靠 display 属性区分行内/块级),例如:

    • <main>(仅 display: block)、<nav><article> 等,需要完全通过 CSS 定义样式。

注意事项:

  • 不同浏览器的默认样式可能存在差异(例如 <figure> 的外边距、<details> 的箭头样式),实际开发中通常会使用 CSS 重置(Reset CSS)Normalize.css 统一基础样式,再自定义外观。
  • 语义化标签的核心价值是语义(帮助浏览器、搜索引擎和辅助技术理解内容),而非样式,样式仍需通过 CSS 控制。

例如,重置 <figure> 的默认外边距:

figure {
  margin: 0; /* 覆盖浏览器默认的 margin */
}

标签: none

添加新评论