fe-interview
fe-interview copied to clipboard
[html] 第11天 你对标签语义化的理解是什么?
第11天 你对标签语义化的理解是什么?
见名知意,方便多人认识,且命名统一,简洁,易于重构代码
也方便SEO
更方便后期维护修改吧,并且也能让代码意图更明了
正确的标签做正确的事,有助于SEO,也方便读代码,了解代码的意图
也方便SEO 对SEO的影响大吗
标签语义化的初衷是让正确的标签做正确的事情,但对于人来说,标签的语义除了在 tag
上体现,还可以从 id
, class
上体现出来。
而每个人对于标签的理解都会存在不同,因此强制规定哪个标签怎么用就不是很好。我的理解标签语义化更多的是为 SEO 进行服务。让爬虫更方便地找到想要的信息。
有利于SEO 方便维护 有利于浏览器识别

一、什么是HTML语义化标签
语义化的标签,旨在让标签有自己的含义。
<p>一行文字</p> <span>一行文字</span> 1 2 如上代码,p 标签与 span 标签都区别之一就是,p 标签的含义是:段落。而 span 标签责没有独特的含义。
二、语义化标签的优势
代码结构清晰,方便阅读,有利于团队合作开发。
方便其他设备解析(如屏幕阅读器、盲人阅读器、移动设备)以语义的方式来渲染网页。
有利于搜索引擎优化(SEO)。
三、常见的语义化标签
因此我们在写页面结构时,应尽量使用有 语义的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>:定义运行中的进度(进程)。
什么是语义化标签? 语义是我们说话表达的意思,多数的语义实际上都是由文字来承载的。语义类标签则是纯文字的补充,比如标题、自然段、章节、列表,这些内容都是纯文字无法表达的,我们需要依靠语义标签代为表达。 语义化标签的好处? 代码结构清晰,方便阅读,有利于团队合作开发。 方便其他设备解析(如屏幕阅读器、盲人阅读器、移动设备)以语义的方式来渲染网页,如根据文章可以自动生成目录等等。 有利于搜索引擎优化(SEO),可以让搜索引擎爬虫更好地获取到更多有效信息,有效提升网页的搜索量 语义化标签的应用场景? 1 作为自然语言的延伸(补充说明、消除歧义等) ruby现象(使用ruby、rt、rp标签) em标签表示句子中的重音(强调) 2作为标题摘要 在 hgroup 中的 h1-h6 被视为同一标题的不同组成部分,形成副标题。 section 的嵌套会使得其中的 h1-h6 下降一级,因此,在 HTML5 以后, section 和 h1 就足以形成文档的树形结构。 3作为整体结构 让浏览器很好地支持“阅读视图功能”,一个典型的body结构:
<body>
<header>……</header>
<article>
<header>……</header>
<section>……</section>
<section>……</section>
<section>……</section>
<footer>……</footer>
</article>
<article>
……
</article>
<article>
……
</article>
<footer>
<address></address>
</footer>
</body>
类似报纸的多文章结构适合用 article 来组织:
<body>
<header>……</header>
<article>
<header>……</header>
<section>……</section>
<section>……</section>
<section>……</section>
<footer>……</footer>
</article>
<article>
……
</article>
<article>
……
</article>
<footer>
<address></address>
</footer>
</body>
https://time.geekbang.org/column/article/78158
- 由于语义化更具有可读性,便于团队开发维护
- 在没有css的情况下,页面也可以呈现出也很好的内容结构和代码结构
- 关于SEO,搜索引擎能更好的理解页面中各部分的关系,可更快更准确的搜索到信息
- 开发人员看的舒服理解的容易,维护方便
- 搜索引擎更容易检索
- 对阅读障碍人员更友好,(特定的阅读器+语义化)
我都是以某一个人、物为主体这样去记忆,好像也还行,大概还是能记住
Semantic HTML elements 是作为代码编写人员与机器解读的中介
对于人来说,语义标签(Semantic HTML elements)常与内容有关
- 使代码更容易维护 使每一个标签一眼就能看出大概的意图,作用
- 更利于SEO
- 方便其他设备解析
让页面的内容结构化,结构更清晰,便于对浏览器、搜索引擎解析; 即使在没有样式CSS情况下也以一种文档格式显示,并且是容易阅读的; 利于SEO,便于阅读维护理解
有利于SEO 方便维护 有利于浏览器识别
利于SEO 方便后期维护 有利于浏览器识别
- 见名识其意
- 有利于搜索引擎优化(SEO)
概念
语义是我们说话表达的意思,多数的语义实际上由文字来承载。
语义化标签则是纯文字的补充,比如标题、段落、章节、列表,这些内容都是纯文字无法表达的
所以我们需要语义化标签代为表达
优点
- 使代码结构清晰,方便阅读,有利于团队合作开发
- 方便设备解析(如屏幕阅读器、盲人阅读器、移动设备),以语义的方式来渲染页面(如根据文章自动生成目录)
- 有利于SEO(搜索引擎优化),让搜索引擎爬虫更好地获得更多有效信息,来提升网页的搜索量
根据内容的结构化,选择合适的标签便于开发者阅读和写出更优雅代码同时让浏览器的爬虫和机器更好的解析。 语义化的目的: ① 为了在没有CSS的情况下,页面也能呈现出好的结果 ② 用户体验:例如title,alt用于解释名词或解释图片信息。 ③ 有利于SEO: 和搜索引擎建立良好沟通,有助于爬虫抓取更多的有效信息。 ④ 便于团队开发和维护,语义化更具有可读性。
总结: 标签语义化:html提供了许多有特殊含义的语义化标签,比如nav标签寓意为导航栏。还有header、footer、aticle、section、aside等。 作用:有利于开发团队理解和维护、有利于seo
✂【回答】 ☞ 标签语义化的定义: 让标签拥有语义,便于浏览器和开发者理解其含义。
☞ 标签语义化的优势:
- 代码结构清晰;
- 有利于 SEO;
- 提升用户体验;
- 便于开发和维护;
- 有助于设备解析。
☞ 常见的语义化标签:
<header> | <title> | <nav> | <section> | <aside> | <footer> ...
🖊【便签】
非语义元素的例子,如 <div>
和 <span>
,它们无法提供关于其内容的信息。
♡【关注】 https://blog.csdn.net/Hewes
- 便于其他设备识别
- seo
- 一目了然,见名知意,也省的满屏div,更清晰
使结构更加清晰,方便编写代码,方便开发和维护,方便seo
可以清晰的知道标签的意思,增强可读性