HTML5 语义化标签(移动端必备)


Posted in HTML / CSS onAugust 23, 2021

距HTML5标准规范制定完成并公开发布已经有好些年了,面试时也少不了要问对HTML5语义化得理解。但是在实际运用时,真正使用HTML5标签来开发的似乎不是很多(ps:查看了几个巨头公司网站推论),可能一部分原因是仍有部分用户使用在使用低版本浏览器。

但是就我个人而言,因选取一些标签时会比较纠结,所以仍使用了div。(PS:正是因为这样,才有了这篇文章的,没错,以后要注意语义化了)

什么是语义化?就是用合理、正确的标签来展示内容,比如h1~h6定义标题。

语义化优点:

易于用户阅读,样式丢失的时候能让页面呈现清晰的结构。
有利于SEO,搜索引擎根据标签来确定上下文和各个关键字的权重。
方便其他设备解析,如盲人阅读器根据语义渲染网页
有利于开发和维护,语义化更具可读性,代码更好维护,与CSS3关系更和谐。

今天先介绍主体结构标签,如图所示:

HTML5 语义化标签(移动端必备)

1、<header>

<header>定义文档或者文档的部分区域的页眉,应作为介绍内容或者导航链接栏的容器。

在一个文档中,您可以定义多个<header>元素,但需要注意的是<header>元素不能作为<address>、<footer> 或 <header> 元素的子元素。

2、<nav>

<nav>描述一个含有多个超链接的区域,该区域包含跳转到其他页面或页面内部其他部分的链接列表。

在一个文档中,可定义多个<nav>元素。

3、<main>

<main> 定义文档的主要内容,该内容在文档中应当是独一无二的,不包含任何在文档中重复的内容,比如侧边栏,导航栏链接,版权信息,网站logo,搜索框(除非搜索框作为文档的主要功能)。

需要注意的是在一个文档中不能出现多个<main>标签。

4、<article>

<article>元素表示文档、页面、应用或网站中的独立结构,是可独立分配的、可复用的结构,如在发布中,它可能是论坛帖子、杂志或新闻文章、博客、用户提交的评论、交互式组件,或者其他独立的内容项目。

当<article>元素嵌套使用时,则该元素代表与外层元素有关的文章。例如,代表博客评论的<article>元素可嵌套在代表博客文章的<article>元素中。

5、<aside>

<aside> 元素表示一个和其余页面内容几乎无关的部分,被认为是独立于该内容的一部分且可以被单独的拆分出来而不会影响整体。通常表现为侧边栏或嵌入内容。

6、<footer>

<footer>定义最近一个章节内容或者根节点元素的页脚。一个页脚通常包含该章节作者、版权数据或者与文档相关的链接等信息。

使用footer插入联系信息时,应在 footer 元素内使用 <address> 元素。

注意不能包含<footer>或者<header>

7、<section>

<section>表示文档中的一个区域(或节),比如,内容中的一个专题组。

如果元素内容可以分为几个部分的话,应该使用 <article> 而不是 <section>。
不要把 <section> 元素作为一个普通的容器来使用,特别是当<section>仅仅是为了美化样式或方便脚本使用的时候,应使用<div>。

这几个标签,比较容易混淆的是<section>、<article>,所以这里特别说明:

“Authors are encouraged to use the article element instead of the section element when it would make sense to syndicate the contents of the elemen.”

通俗来说就是<article>比<section>更具有独立性、完整性。可通过该段内容脱离了所在的语境,是否完整、独立来判断。

 
HTML / CSS 相关文章推荐
简单掌握CSS3将文字描边及填充文字颜色的方法
Mar 07 HTML / CSS
css3实例教程 一款纯css3实现的环形导航菜单
Oct 20 HTML / CSS
详解CSS3中Media Queries的相关使用
Jul 17 HTML / CSS
基于html和CSS3制作酷炫的导航栏
Sep 23 HTML / CSS
Css3新特性应用之视觉效果实例
Dec 12 HTML / CSS
你不知道的5个HTML5新功能
Jun 28 HTML / CSS
使用HTML5 Canvas API中的clip()方法裁剪区域图像
Mar 25 HTML / CSS
HTML5本地存储之Web Storage应用介绍
Jan 06 HTML / CSS
HTML5之SVG 2D入门5—颜色的表示及定义方式
Jan 30 HTML / CSS
html5+svg学习指南之SVG基础知识
Dec 17 HTML / CSS
详解HTML5 window.postMessage与跨域
May 11 HTML / CSS
使用CSS实现黑白格背景效果
Jun 01 HTML / CSS
CSS3 Tab动画实例之背景切换动态效果
Aug 23 #HTML / CSS
CSS 使用 resize 实现图片拖拽切换预览功能(强大功能)
如何使用 resize 实现图片切换预览功能
Aug 23 #HTML / CSS
css中z-index: 0和z-index: auto的区别
Aug 23 #HTML / CSS
CSS Transition通过改变Height实现展开收起元素
Aug 07 #HTML / CSS
css3中transform属性实现的4种功能
Aug 07 #HTML / CSS
从QQtabBar看css命名规范BEM的详细介绍
Aug 07 #HTML / CSS
You might like
不用数据库的多用户文件自由上传投票系统(2)
2006/10/09 PHP
Win2003下APACHE+PHP5+MYSQL4+PHPMYADMIN 的简易安装配置
2006/11/18 PHP
php与php MySQL 之间的关系
2009/07/17 PHP
PHP中simplexml_load_string函数使用说明
2011/01/01 PHP
php实现以只读方式打开文件的方法
2015/03/16 PHP
php array_walk_recursive 使用自定的函数处理数组中的每一个元素
2016/11/16 PHP
JavaScript入门教程 Cookies
2009/01/31 Javascript
Javascript中自动切换焦点实现代码
2012/12/15 Javascript
jquery实现的一个导航滚动效果具体代码
2013/05/27 Javascript
javascript和HTML5利用canvas构建猜牌游戏实现算法
2013/07/17 Javascript
js 浏览本地文件夹系统示例代码
2013/10/24 Javascript
JavaScript实现穷举排列(permutation)算法谜题解答
2014/12/29 Javascript
Jquery Ajax xmlhttp请求成功问题
2015/02/04 Javascript
zepto.js中tap事件阻止冒泡的实现方法
2015/02/12 Javascript
jquery实现动画菜单的左右滚动、渐变及图形背景滚动等效果
2015/08/25 Javascript
简单总结JavaScript中的String字符串类型
2016/05/26 Javascript
Vue响应式原理深入解析及注意事项
2017/12/11 Javascript
Vue-cli3项目配置Vue.config.js实战记录
2018/07/29 Javascript
解决layui checkbox 提交多个值的问题
2019/09/02 Javascript
layui内置模块layim发送图片添加加载动画的方法
2019/09/23 Javascript
js+css3实现简单时钟特效
2020/09/13 Javascript
如何在vue中使用kindeditor富文本编辑器
2020/12/19 Vue.js
python开启摄像头以及深度学习实现目标检测方法
2018/08/03 Python
如何更改 pandas dataframe 中两列的位置
2019/12/27 Python
Pytorch之parameters的使用
2019/12/31 Python
TFRecord格式存储数据与队列读取实例
2020/01/21 Python
英国领先的体验日提供商:Buyagift
2019/04/19 全球购物
当文件系统受到破坏时,如何检查和修复系统?
2012/03/09 面试题
科研先进个人典型材料
2014/01/31 职场文书
学生会宣传部部长竞选演讲稿
2014/04/25 职场文书
百日安全生产活动总结
2014/07/05 职场文书
MySQL中distinct与group by之间的性能进行比较
2021/05/26 MySQL
springboot 多数据源配置不生效遇到的坑及解决
2021/11/17 Java/Android
python和C/C++混合编程之使用ctypes调用 C/C++的dll
2022/04/29 Python
使用CSS自定义属性实现骨架屏效果
2022/06/21 HTML / CSS
MySQL分布式恢复进阶
2022/07/23 MySQL