博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
前端经典面试题:如何理解 HTML 语义化?
阅读量:5360 次
发布时间:2019-06-15

本文共 1631 字,大约阅读时间需要 5 分钟。

本文最初于 2018-09-21 发布于 ,后在 专栏的学习中,重新复习整理,发布于 上,并计划写一系列前端学习相关的文章。欢迎 star 。

HTML 语义化

简单来说,我们可以理解为:用正确的标签做正确的事情。

例如:

段落用 p 标签,标题用 h 系列标签,边栏用 aside 标签,主要内容用 main 标签。正确使用语义标签可以带来很多好处。

为什么要关注 HTML 语义化?(为什么要使用语义类标签?)

对人:

  • 增强可读性,对开发者更友好,在没有 CSS 的情况下也能较好地呈现网页的内容结构与代码结构,便于团队的开发和维护。

对机器:

  • 有利于 SEO ,可以让搜索引擎爬虫更好地获取到更多有效信息,搜索引擎的爬虫依赖于标签来确定上下文和各个关键字的权重,有效提升网页的搜索量。
  • 支持读屏软件,方便其他设备的解析(如屏幕阅读器、盲人阅读器等),利于无障碍阅读,提高可访问性。

一些语义类标签介绍

<header>

用于展示介绍性内容,通常包含一组介绍性的或是辅助导航的实用元素。

<footer>

表示最近一个章节内容或者根节点元素的页脚。通常出现在尾部,包含一些作者信息、相关链接、版权信息等。

<aside>

表示跟文章主体不那么相关的部分,可能包含导航、广告等工具性质的内容。

侧边栏是 aside,aside 不一定是侧边栏。

aside 和 header 中都可能出现导航 <nav>,header 中的导航多数是到文章的目录,而 aside 中的导航多是到关联页面或者整站地图。

<address>

footer 中可以包含此元素。

容易误用,并非表示单纯的地址,而是表示「文章作者的联系方式」。

可以让作者为它最近的 <article> 或者 <body> 祖先元素提供联系信息。在后一种情况下,它应用于整个文档。

<hgroup>

表示标题组。

<em>

表示重音。同样一句话里如果重音不同,表达的意思也许大相径庭。

<strong>

表示文本十分重要,一般用粗体显示。

<abbr>

表示缩写。

<hr>

横向分割线,表示段落级元素之间的主题转换(例如,一个故事中的场景的改变,或一个章节的主题的改变)。

<blockqoute>

表示段落级引述内容。

<q>

表示行内的引述内容。

<cite>

表示引述的作品名。

<time>

表示24小时制时间。

<figure><figcaption>

两者常配合使用,表示一段独立的内容,并且作为一个独立的引用单元。

当它属于主体(main flow)时,它的位置独立于主体。这个标签经常是在主文中引用的图片,插图,表格,代码段等等,当这部分转移到附录中或者其他页面时不会影响到主体。 -- MDN

An awesome picture
这是一张图片。

<dfn>

表示术语的一个定义。

The Internet is a global system of interconnected networks that use the Internet Protocol Suite (TCP/IP) to serve billions of users worldwide.

<nav> <ol> <ul>

导航栏、有序列表、无序列表

<pre> 中的内容会保持原有格式。

<samp> 元素用于标识计算机程序输出。

<code> 表示一段计算机代码。

总结

对于语义类标签的使用也许会带来一些争议,我们应该遵循的原则是:

尽量只用自己熟悉的语义标签。

用对比不用好,不用比用错好。

提示:

你可以在百度或者谷歌搜索中输入「标签名称」+「MDN」这两个关键字来查看更加专业和详细的解释。

另外安利一个 HTML 标签的学习链接:

(完)

转载于:https://www.cnblogs.com/leyili/p/semantics.html

你可能感兴趣的文章
Part3_lesson2---ARM指令分类学习
查看>>
jQuery拖拽原理实例
查看>>
JavaScript 技巧与高级特性
查看>>
Uva 11729 Commando War
查看>>
增强学习(一) ----- 基本概念
查看>>
ubuntu下USB连接Android手机
查看>>
C# 语句 分支语句 switch----case----.
查看>>
lseek函数
查看>>
反射获取 obj类 的属性 与对应值
查看>>
表单中的readonly与disable的区别(zhuan)
查看>>
win10下安装配置mysql-8.0.13--实战可用
查看>>
周记2018.8.27~9.2
查看>>
MySQL中 1305-FUNCTION liangshanhero2.getdate does not exit 问题解决
查看>>
Ctrl+Alt+Down/Up 按键冲突
查看>>
python序列化和json
查看>>
mongodb
查看>>
网格与无网格
查看>>
2018年3月份
查看>>
SSH-struts2的异常处理
查看>>
《30天自制操作系统》学习笔记--第14天
查看>>