• 作者:陈大鱼头
  • github: KRISACHAN
  • 链接:github.com/YvetteLau/S…
  • 背景:最近高级前端工程师 刘小夕github 上开了个每个工作日布一个前端相关题的 repo,怀着学习的心态我也参与其中,以下为我的回答,如果有不对的地方,非常欢迎各位指出。

标签分类

  • 在一个 html 文档中,标签大致可以分为以下两个大类:
    1. <!DOCTYPE>:声明文档类型;
    1. <html></html>:限定文档区域;

<html></html> 内又有以下几类:

1. head

<head>标签用于定义文档的头部,它是所有头部元素的容器。<head>描述了文档的各种属性和信息,包括文档的标题、在 Web 中的位置以及和其他文档的关系等。 head内可存放标签有:

  1. <base>:为页面上的所有链接规定默认地址或默认目标。
  2. <link>:主要用于style文件引入
  3. <style>:样式表区域
  4. <title>:可定义文档的标题。<title> 标签是 <head> 标签中唯一要求包含的东西。
  5. <meta>:提供了有关当前HTML元素的元信息 (meta-information)

2. body

<body>标签内存放文档的内容。 <body>内标签分类有以下11类:

  1. 内容分区
  2. 文本内容
  3. 内联文本语义
  4. 图片和多媒体
  5. 内嵌内容
  6. 脚本
  7. 编辑标识
  8. 表格内容
  9. 表单
  10. 交互元素
  11. Web组件

HTML 标签语义化

语义化到底重不重要?

我们知道,在HTML中,每个标题是通过标题标签来定义的,标题标签一共有6个,分别是:h1~6。例子如下:

<h1>我是一级标题</h1>
<h2>我是二级标题</h2>
<h3>我是三级标题</h3>
<h4>我是四级标题</h4>
<h5>我是五级标题</h5>
<h6>我是六级标题</h6>
复制代码

如果是连续的标题,则可以用 <hgroup> 来连接:

<hgroup><h1>我是一级标题</h1><h2>我是二级标题</h2><h3>我是三级标题</h3><h4>我是四级标题</h4><h5>我是五级标题</h5><h6>我是六级标题</h6>
</hgroup>
复制代码

如果是段落内容,则用 <p>

<p>我是段落内容</p>
复制代码

如果我们要列一个列表则可以用 <ol></ol><li></li> 。如果只是要标记项目,我们可以用 <li></li> ,例子如下:

<ul><li>苹果</li><li>香蕉</li><li>奥特曼</li><li>橙子</li>
</ul>
复制代码

若是标记顺序,则用 <ol></ol> ,例子如下:

<ol><li>向前走300米</li><li>右转</li><li>向前走300米</li><li>右转</li><li>向前走300米</li>
</ol>
复制代码

当然我们也可以按需嵌套。

<ol>
<li>先用蛋白一个、盐半茶匙及淀粉两大匙搅拌均匀,调成“腌料”,鸡胸肉切成约一厘米见方的碎丁并用“腌料”搅拌均匀,腌渍半小时。</li><li>用酱油一大匙、淀粉水一大匙、糖半茶匙、盐四分之一茶匙、白醋一茶匙、蒜末半茶匙调拌均匀,调成“综合调味料”。</li><li>鸡丁腌好以后,色拉油下锅烧热,先将鸡丁倒入锅内,用大火快炸半分钟,炸到变色之后,捞出来沥干油汁备用。</li><li>在锅里留下约两大匙油,烧热后将切好的干辣椒下锅,用小火炒香后,再放入花椒粒和葱段一起爆香。随后鸡丁重新下锅,用大火快炒片刻后,再倒入“综合调味料”继续快炒。</li><ul><li>如果你采用正宗川菜做法,最后只需加入花生米,炒拌几下就可以起锅了。</li><li>如果你在北方,可加入黄瓜丁、胡萝卜丁和花生米,翻炒后起锅。</li></ul>
</ol>
复制代码

在我们平常说话的时候,为了突出重点,我们往往会强调某些词,就如如下的例子:

<p>我<em>非常</em>喜欢加班</p>
复制代码

如果是重音强调,则:

<p>鱼头,明天<strong>别迟到</strong>了</p>
复制代码

如果你在项目的一开始就使用HTML语义化,不仅不会花更多的时间,而且又有以下的可访问性优点:

  1. 更便于开发 — 如上所述,你可以使HTML更易于理解,并且可以毫不费力的获得一些功能。

  2. 更适配移动端 — 语义化的HTML文件比非语义化的HTML文件更加轻便,并且更易于响应式开发。

  3. 更便于SEO优化 — 比起使用非语义化的

    标签,搜索引擎更加重视在“标题、链接等”里面的关键字,使用语义化可使网页更容易被用户搜索到。(虽然在9012年的今天,SEO并没太大软用)

无障碍设计

在Web开发无障碍性意味着使尽可能多的人能够使用Web站点,即使这些人的能力是有限的。这里我们提供关于开发易访问的内容的信息。

“无障碍性是最常用于描述设施或设施,帮助残疾人,如“轮椅”。这可以扩展到盲文标识、轮椅坡道,音频信号在人行横道,轮廓人行道,网站设计,等等。"

WAI-ARIA

WAI-ARIA 是一项技术,它可以通过浏览器和一些辅助技术来帮助我们进一步地识别以及实现语义化,这样一来能帮助我们解决问题,也让用户可以了解发生了什么。

WAI-ARIA 是W3C编写的规范,定义了一组可用于其他元素的HTML 特性,用于提供额外的语义化以及改善缺乏的可访问性。以下是规范中三个主要的特性:

  1. 角色(role):这定义了元素是干什么的;

  2. 属性: 通过定义一些属性给元素,让他们具备更多的语义;

  3. 状态:用于表达元素当前的条件的特殊属性。

后记

HTML语义化非常地重要,虽然在组件化开发的今天,利益没那么明显,但是对于后期维护,用户访问以及用户友好度来说都是非常重要的,在某些国家,语义化跟无障碍标准化甚至是衡量一个线上产品能否上线的标准。

如果你、喜欢探讨技术,或者对本文有任何的意见或建议,你可以扫描下方二维码,关注微信公众号“鱼头的Web海洋”,随时与鱼头互动。欢迎!衷心希望可以遇见你。

前端进阶之说一说你对HTML5语义化的理解相关推荐

  1. 好程序员web前端分享常见html5语义化标签

    为什么80%的码农都做不了架构师?>>>    好程序员web前端分享常见html5语义化标签,我们知道,创建结构清晰的页面可以建立良好的语义化基础,也降低了使用css的难度,下面总 ...

  2. 【重构前端知识体系之HTML】讲讲对HTML5的一大特性——语义化的理解

    Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/cou ...

  3. web前端入门学习 css(8)(新增语义化标签、video/audio、新增input类型、新增表单属性、属性选择器、结构伪类选择器、伪元素选择器、css3盒子模型、模糊、calc函数、过渡

    https://www.bilibili.com/video/BV1pE411q7FU?p=276 文章目录 html5新特性 html5新增语义化标签 header头部 nav导航 article内 ...

  4. html标签语义化的好处,(2019)[前端]面试题[9]:HTML5语义化标签和新特性

    问题 知道语义化吗?说说你理解的语义化,如果是你,平时会怎么做来保证语义化? 说说你了解的HTML5语义化标签,HTML5新增了那些新特性? Hello,欢迎来到我的博客,每天一道面试题,我们共同进步 ...

  5. 2018国内各大互联网公司前端面试题汇总【转:公众号~~高级前端进阶公众号】

    阿里 使用过的koa2中间件 koa-body原理 介绍自己写过的中间件 有没有涉及到Cluster 介绍pm2 master挂了的话pm2怎么处理 如何和MySQL进行通信 React声明周期及自己 ...

  6. 前端面试—html语义化

    html最常见的问题:语义化的HTML结构怎么理解? 前天面试对于这个问题我是这么答的: html语义化就是让页面的内容结构化. 1.在没有样式CCS情况下也以一种文档格式显示,并且是容易阅读的. 2 ...

  7. 前端进阶之路: 前端架构设计(2)-流程核心

    可能很多人和我一样, 首次听到"前端架构"这个词, 第一反应是: "前端还有架构这一说呢?" 在后端开发领域, 系统规划和可扩展性非常关键, 因此架构师备受重视 ...

  8. 前端进阶必备技能:Vue中如何定制动画效果

    作为前端程序员,前端火起来的短短几年里技术更新迭代特别快,不仅是新的框架繁多,Vue,React,Angular轮番上场,各种工具,插件,库也是琳琅满目,就连基础的JavaScript语法的更新也是年 ...

  9. 自学前端开发,前端进阶阶段需要学习哪些知识?

    今天要跟大家分享的文章是关于web前端进阶阶段需要学习哪些知识?已经入门web前端想要提升自己技术的小伙伴们来和小编一起看一看本篇文章吧,希望本篇文章能够对大家有所帮助. 1.完善我们的基础知识 (1 ...

最新文章

  1. html5 的a标签是可以拨电话的,通过其Href属性来实现
  2. 【OpenCV 4开发详解】图像二值化
  3. Docker 安装Grafana可视化面板
  4. 【Java多线程】线程优先级:优先级高,执行机会多
  5. 为什么嵌入式工程师会对8位MCU有误解?
  6. HALCON示例程序color_pieces.hdev通过MLP训练器对彩色棋子进行分类识别
  7. python2编码问题解决了吗_Python2编码问题
  8. 数据增强_imgaug图像数据增强必备工具
  9. java list 在头部添加6_【Java提高十六】集合List接口详解
  10. nccloud开发环境搭建_VS Code 搭建开发环境
  11. verilog学习记(verilog翻译成c)
  12. 十一、网络编程。TCP\UDP\socket
  13. matlab示例程序,Matlab100个实例程序.doc
  14. Socket TCP Ping使用小结
  15. 计算机网络图标在哪里照,网络设备图标-电脑上的网络图标怎么显示
  16. 跨境电商战略发展中,流星汇聚分析未来跨境电商发展趋势
  17. erewrwerwer
  18. Android开发-基本概念小整理(二)为了面试的小伙伴们所准备~~
  19. Nexus6P使用小技巧
  20. 调用有赞云api的前置工作——获取token

热门文章

  1. Shell脚本批量创建用户并随机生成密码
  2. lowerBound与upperBound
  3. 输入输出,数据类型,运算符
  4. HTML/CSS/动画
  5. 如何搞定putty乱码
  6. 開啟 Excel 檔案出現錯誤訊息【Windows 找不到檔案路徑
  7. ecshop2.71 lbi库文件添加流程
  8. Exchange 2010之接受域
  9. 编辑器FreeTextBox升级至3.0
  10. 计算机用户的特点,计算机应用基础 Windows的主要特点