# 语义化标签

# 下面是一些常用语义化标签

<body>
    <header>header</header>
    <section>
        <aside></aside>
        <article></article>
        <p>这是ruby标签:</p>
        <ruby><rt>ren</rt>
            <rp>该标签无法显示</rp>
        </ruby>
        <p>这是details标签:</p>
        <details>
            <summary>点击查看更多</summary>
            <p>这是点击后的内容</p>
        </details>
        <p>这是mark标签:</p>
        <p>我最喜欢<mark>数学</mark></p>
        <p>这是progress标签:</p>
        <progress value="30" max="100"></progress>

        <p>这是datalist标签:</p>
        <input type="text" list="cars">
        <datalist id="cars">
            <option value="宝马"></option>
            <option value="奔驰"></option>
            <option value="奥迪"></option>
        </datalist>
        <!-- <embed src="swf/flash5924.swf" tyep="application/x-shockwave-flash">
        </embed> -->
    </section>
    <footer>footer</footer>
</body>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32

TIP

点击此处 (opens new window),查看上述代码在浏览器上的表现。

  • <header> 定义了文档的头部区域,在一个文档中可以定义多个<header>元素。
  • <footer> 定义文档页脚,它不只是页面的最底部,在文档中也可以定义多个。
  • <article> 定义页面独立的内容区域,标签定义的内容本身必须是有意义且必须独立于文档的其他部分,可用在的地方:博客文章,新闻,评论等。
  • <aside> 定义页面的侧边栏内容。
  • <time> 定义时间或日期,time 标签中的 datetime 属性定义的时间不会被显示,但可能被其他应用使用。
  • <ruby> 加注释,ruby 标签有两个子元素,rt 注释的内容,rp 是该标签不显示时显示的文字。应用场景:加注释拼音等。
  • <details> 用于描述文档或者文档某一部分细节,summary 是 details 元素的标题。
  • <mark> 定义带有几号的文本,它会给你想要突出显示的文本加个 背景色
  • <progress> progress 显示数据的进度,属性 value 指定当前值,max 最大值,最小值 0 不用设置。
  • <nav> 定义导航栏
  • <section> section 一般有两个作用,1.定义文档中的节,和 div 类似。2.定义文章,这时一般带有标题。
  • <video> 定义视频,属性 src 引入资源,controls 视频的控制控件
  • <audio> 该标签可定义声音,及其他的音频文件,不加 controls 不显示音频的控制界面
  • <datalist> 提示可能的值,datalist 及其选项不会被显示出来,它仅仅是合法输入值的列表使用 input 元素的 list 属性来邦定 datalist,下面选项使用 option 定义。
  • <embed> 定义插入的内容,如插件,flash,标签中间不要加内容会显现出来
  • <canvas> canvas 画布只是个容器,你可以通过控制坐标在 canvas 上绘制图形,一般配合 js 可以实现非常复杂的动画效果。

# 语义化标签的好处

  1. HTML 结构清晰
  2. 代码可读性较好
  3. 无障碍阅读
  4. 搜索引擎可以根据标签的语言确定上下文和权重问题
  5. 移动设备能够更完美的展现网页(对 css 支持较弱的设备)
  6. 便于团队维护和开发