小白也能懂的HTML语义化| 青训营

151 阅读4分钟

前言

    在Web开发领域,HTML语义化是一个非常重要的概念。它强调使用恰当的HTML标记来描述文档结构和内容,使得页面具备更好的可读性、可维护性和可访问性。语义化的HTML不仅给开发者带来便利,也对搜索引擎SEO和相关技术(如屏幕阅读器,AI智能等)有着积极的影响。

1.对于HTML语义化的理解(个人见解)

对于HTML语义化,我的理解就是,让一堆杂乱无章的div标签产生意义,让开发者或者搜索引擎蜘蛛可以一下就明白整个页面的布局结构,而不是还要对照着页面来理解。
下面给大家举个例子:
非语义化

<div id="header">
    <div id="logo">Logo</div> 
    <div id="nav"> 
        <div>Home</div> 
        <div>About</div>
        <div>Contact</div>
    </div>
</div>

语义化

<header>
    <div id="logo">Logo</div>
    <nav> 
        <ul> 
            <li><a href="/">Home</a></li> 
            <li><a href="/about">About</a></li> 
            <li><a href="/contact">Contact</a></li>
        </ul> 
    </nav> 
</header>

看完上面的例子,大家是不是知道HTML语义化的好处,就是可以让整个结构都非常清晰,一目了然
用之前听到过的一句话来说,就是:即使没有css,也能凭借html看清整个页面

2.HTML语义化原理

HTML语义化的底层原理要从两方面来看

  • 浏览器解析: 浏览器在加载HTML时,会按照标准解析规则对HTML元素进行解析和渲染。在这个过程中,浏览器会根据标签的语义来决定如何显示和处理元素。
    例如,<header> 标签会被解析为网页的头部,<nav> 标签会被解析为导航栏,<article> 标签会被解析为独立的文章内容等等...

  • 搜索引擎处理: 搜索引擎对网页的理解也依赖于HTML标签的语义化。搜索引擎会解析网页的HTML结构,并根据标签的语义来判断网页的内容和关系。语义化标签可以帮助搜索引擎蜘蛛更好地理解网页的结构和内容,并进行合理的抓取,从而让网站获得排名,展示在最最最前面~

3.HTML标签的更新迭代

  1. 最初的XML:自定义标签
<book category="历史"> 
    <title>明朝那些事儿</title> 
    <author>当年明月</author>
    <year>2005</year>
</book>
  1. 接着的HTML:规范标准
<title> 页面标题
<h1> 标题
<p> 段落
<a> 链接
<ul> 无序列表
<ol> 有序列表
  1. 现在的HTML5:更加丰富的语义化标签
<article>文章
<header>页头
<footer>页脚
<menu>  菜单
<nav> 导航
<canvas> 画布

不得不说,这些标准与规范做的越来越好了,如果在实际开发中大家都遵循这个标准,那就可以大大减少差异化内容,让代码一目了然,结构清晰,以提高开发效率。

4.盘点常用的HTML语义化标签

  1. <header>:表示页面或区块的头部,通常包含导航、页眉或标题信息。
  2. <nav>:表示页面的导航链接部分。
  3. <main>:表示页面的主要内容,每个页面应该只有一个<main>元素。
  4. <article>:表示独立的、完整的文章或内容区块。
  5. <section>:表示页面中的一个独立区域或部分。
  6. <aside>:表示页面的附属信息部分,通常在主内容旁边。
  7. <footer>:表示页面或区块的尾部,通常包含版权、联系信息等。
  8. <figure>:表示独立的、完整的媒体内容(如图片、图表等)以及相关的标题和说明。
  9. <figcaption>:表示<figure>元素中的标题或说明。
  10. <time>:表示日期、时间或时间范围。
  11. <blockquote>:表示长引用的内容块。
  12. <cite>:表示引用的来源或作者。
  13. <code>:表示计算机代码或代码片段。
  14. <em>:表示强调的文本。
  15. <strong>:表示重要性更高的文本。
  16. <canvas>: 表示画布

5.HTML语义化标签的滥用现象

HTML语义化标签存在的意义就是让页面的结构更加清晰明了,但是有些开发者,却为了减少css的书写,就用HTML标签进行偷懒,比如说缩进,空格,换行等...

举例说明

目的:实现空白区域

正常的代码
<div style="margin-bottom:10px"></div>
偷懒的代码
<div></div>
<p>&nbsp;</p>

总结:我们应该合理的使用语义化标签,而不能为了偷懒就滥用

6.HTML语义化页面 优秀示例

下面给大家附上一张优秀示例,供大家更加深入的理解,图片引用自这位大佬初探 · HTML5语义化 - 知乎

v2-b0b4e65944f45abea083de0e8087d69c_720w.webp

上面的示例,基本没有使用div,我们在日常的开发中,也应该像这样,将div当作一个单纯的容器来使用,其他的地方尽量使用语义化的标签。