现在越来越多的公司要求前端工程师能够编写语义化的HTML,那么什么是HTML语义化,HTML语义化有哪些好处呢,HTML语义化标签有哪些呢,这篇文章将一一展开讲解。
什么是HTML语义化
HTML语义化是HTML5的革新点之一,在HTML5出现之前,我们大多使用div标签,而这些标签却没有什么实际意义,我们都是通过css来设定他们的样式,如果css样式缺失,这些标签中的内容就会无序地堆砌,页面的可读性极差。HTML5出现后,有了head、article、section、footer等标签,这能够让开发者更恰当地描述所表述的内容是什么,例如,head是用来描述页头的,footer是用来描述页尾的。使得html标签有意义,这便是HTML的语义化概念。
HTML语义化有哪些好处呢
如果没有使用语义化标签,一个页面的布局大概是这样的:
使用了语义化标签后,该页面的布局应该是这样的:
由此可见,HTML语义化使得我们的页面更具有可读性,特别是从代码层面讲,如果一段代码通篇使用div,我们需要通过类名或者关键字才能识别其中代码所表述的内容,如果使用语义化标签,我们只需通过标签名就能得知,由此也提高了代码的可维护性。
此外,HTML语义化还有利于做SEO优化
SEO是专门利用搜索引擎的搜索规则来提高目前网站在有关搜索引擎内的自然排名的方式。语义化的标签有助于爬虫抓取更多的有效信息,爬虫依赖于标签来确定上下文和各个关键字的权重。例如,在网站中,文章的标题尤为重要,重要部分的标题应使用<h1>
标签,如果觉得h1
标签的样式难看的话,可以使用css
代码对其进行优化。其次,不太重要的标题也应使用h2、h3
这样的标签,这对网页爬虫是很好的优化,网页爬虫也会比较重视h1
的标签。
HTML语义化还能使得在css缺失的情况下,依然能展示页面的结构
下图是用语义化标签生成的,在没有任何样式的情况下,效果是这样的。
使用纯div时,在没有样式的情况下,效果是这样的:
综上,HTML语义化的好处有:
HTML语义化标签有哪些
<title>
:页面主体内容。<hn>
:h1~h6,分级标题,<h1>
与<title>
协调有利于搜索引擎优化。<ul>
:无序列表。<li>
:有序列表。<header>
:页眉通常包括网站标志、主导航、全站链接以及搜索框。<nav>
:标记导航,仅对文档中重要的链接群使用。<main>
:页面主要内容,一个页面只能使用一次。如果是web应用,则包围其主要功能。<article>
:定义外部的内容,其中的内容独立于文档的其余部分。<section>
:定义文档中的节(section、区段)。比如章节、页眉、页脚或文档中的其他部分。<aside>
:定义其所处内容之外的内容。如侧栏、文章的一组链接、广告、友情链接、相关产品列表等。<footer>
:页脚,只有当父级是body时,才是整个页面的页脚。<small>
:呈现小号字体效果,指定细则,输入免责声明、注解、署名、版权。<strong>
:和em
标签一样,用于强调文本,但它强调的程度更强一些。<em>
:将其中的文本表示为强调的内容,表现为斜体。<mark>
:使用黄色突出显示部分文本。<figure>
:规定独立的流内容(图像、图表、照片、代码等等)(默认有40px左右margin)。<figcaption>
:定义figure
元素的标题,应该被置于figure
元素的第一个或最后一个子元素的位置。<cite>
:表示所包含的文本对某个参考文献的引用,比如书籍或者杂志的标题。<blockquoto>
:定义块引用,块引用拥有它们自己的空间。<q>
:短的引述(跨浏览器问题,尽量避免使用)。<time>
:datetime属性遵循特定格式,如果忽略此属性,文本内容必须是合法的日期或者时间格式。<abbr>
:简称或缩写。<dfn>
:定义术语元素,与定义必须紧挨着,可以在描述列表dl元素中使用。<address>
:作者、相关人士或组织的联系信息(电子邮件地址、指向联系信息页的链接)。<del>
:移除的内容。<ins>
:添加的内容。<code>
:标记代码。<meter>
:定义已知范围或分数值内的标量测量。(Internet Explorer 不支持 meter 标签)-
<progress>
:定义运行中的进度(进程)