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

引言

在讲什么是语义化之前,先看看语义化的背景。

在之前的文章中提到HTML最重要的特性,那就是标签。但是项目一大,标签多的看不懂,一堆叠着一堆。一些命名奇奇怪怪,想维护被劝退,团队协作导致团战开始!

因此语义化迫在眉睫!

什么是语义化

在我们写HTML时其实无所谓,因为你里面长啥样,用户看不到,也不用看到。

因为你有CSS的漂亮衣服,即使你的HTML一塌糊涂,CSS也可以让它光鲜亮丽。

但是用户看不到,开发者看得到呀!因此,这个语义化的友好者是开发者本身。

所谓语义化,就是凭着HTML本身,也能体验出人性化的结构!

语义化的好处

  • 在没有CSS的情况下,页面也能呈现出很好地内容结构、代码结构。这样开发者一眼就明了你的意图,一秒破冰!

  • 对SEO友好。对开发者友好,那么对开发者的小虫子们也是当然!

    当标签应用得当,体现出上下文中你想要关键字的权重,那么搜索引擎爬虫就到了你的头上了。那么网站的访问量不就来了吗。

  • 可以支持一些特殊的设备(盲人阅读、移动设备),网页翻译等。

  • 最直观的一点,便是你的队友都希望和你合作!你的代码的语义化,队友都爱啊!

    语义化更具可读性,遵循W3C标准的团队都遵循这个标准,可以减少差异化。(跳槽快速融入?)

工作中语义化的思考

  • 不要使用一些纯样式标签,这些CSS会帮我们做到。如:b、font、u等一些标签。

  • 需要强调的文本,可以包含在strong或者em标签中(,strong默认样式是加粗(不要用b),em是斜体(不用i)。使用 mark标签来表示标注的/突出显示的文本。

    但是还是可以考虑使用CSS来完成。

  • 每个input标签对应的说明文本都需要使用label标签,并且通过为input设置id属性,在lable标签中设置for=someld来让说明文本和相对应的input关联起来。

  • 表单域要用fieldset标签包起来,并用legend标签说明表单的用途。

  • 应该使用<h1> - <h6>来表示标题。

  • 当用CSS写样式的时候命名也需要遵循HTML的结构,体现出语义化的本质。

语义化的标签

1、<header> 标签定义文档的页眉

通常包含页面的正副标题。

<header>
<h1>他真的是美男子吗?</h1>
<p>据现场勘查,他真的是美男子!</p>
</header>

2、<footer>标签定义文档或节的页脚

页脚通常包含文档的作者、版权信息、使用条款链接、联系信息等等。

可以在一个文档中使用多<footer>元素。

<footer>
<p>Posted by: 美男子</p>
</footer>

3、<main>标签规定文档的主要内容。

<main> 元素中的内容对于文档来说应当是唯一的。

它不应包含在文档中重复出现的内容,比如侧栏、导航栏、版权信息、站点标志或搜索表单。

在一个文档中,不能出现多个 <main> 元素。<main> 元素不能是以下元素的后代:<article><aside><footer><header> <nav>

<main>
<h1>我的介绍</h1>
<p>我是一个聪明的孩子</p>
</main>

4、<section> 标签定义文档中的片段。

比如章节、页眉、页脚或文档中的其他部分。

<section>
<h1>PRC</h1>
<p>The People's Republic of China was born in 1949...</p>
</section>

5、<article> 标签规定独立的自包含内容

比如文章下的评论之类的

<article>
<h1>我为什么聪明呢</h1>
<p>我聪明的秘诀是我爱思考</p>
</article>

6、<aside> 标签定义其所处内容之外的内容。

用来装载非正文类的内容。例如广告,成组的链接,侧边栏等等。

<p>聪明的研究</p>
<aside>
<h1>我为什么聪明呢</h1>
<p>我聪明的秘诀是我爱思考</p>
</aside>

7、<nav> 元素代表页面的导航链接区域。

用于定义页面的主要导航部分。

<nav>
<ul>
<li><a href=”https://www.baidu.com”>百度</a></li>
<li><a href=”https://www.guizimo.com”>归子莫</a></li>
</ul>
</nav>

一个语义化模板

先来看一张图。

看起来,一个标标致致的HTML结构就很清晰了。

总结

有的朋友肯定会问了,那平时都是用框架写的代码,基本不用用这些,又不是去写个人网站或者官网,都是写一些业务型的H5或者后台管理。

其实对于个人网站或者官网来说,语义化是有实际价值的。而且,这个也是近些年来面试的常问的一题。最重要的是要去学习语义化的含义。做到代码语义化,包括函数的命名,组件的命名,组件业务功能的拆分。一直在路上!

重构前端知识体系,你要一起吗?

博客说明与致谢

文章所涉及的部分资料来自互联网整理,其中包含自己个人的总结和看法,分享的目的在于共建社区和巩固自己。

引用的资料如有侵权,请联系本人删除!

感谢万能的网络,W3C,菜鸟教程等!

感谢勤劳的自己个人博客GitHub学习GitHub

公众号【归子莫】,小程序【子莫说】

如果你感觉对你有帮助的话,不妨给我点赞鼓励一下,好文记得收藏哟!关注我一起成长!

所属专栏:重构前端知识体系(HTML)

幸好我在,感谢你来!

【重构前端知识体系之HTML】讲讲对HTML5的一大特性——语义化的理解的更多相关文章

  1. 【重构前端知识体系之HTML】HTML5给网页音频带来的变化

    [重构前端知识体系之HTML]HTML5给网页音频带来的变化 引言 音乐播放,相信大家都很熟悉,但是早在之前的音乐播放之前,你的浏览器会问你,是否下载flash插件.然而现在,估计一些年轻的开发者都不 ...

  2. 从输入URL到页面加载的过程?如何由一道题完善自己的前端知识体系!

    前言 见解有限,如有描述不当之处,请帮忙指出,如有错误,会及时修正. 为什么要梳理这篇文章? 最近恰好被问到这方面的问题,尝试整理后发现,这道题的覆盖面可以非常广,很适合作为一道承载知识体系的题目. ...

  3. web前端知识体系总结

    1. 前言 大约在几个月之前,让我看完了<webkit技术内幕>这本书的时候,突然有了一个想法.想把整个web前端开发所需要的知识都之中在一个视图中,形成一个完整的web前端知识体系,目的 ...

  4. 自己总结的web前端知识体系大全【欢迎补充】

    1. 前言 大约在几个月之前,让我看完了<webkit技术内幕>这本书的时候,突然有了一个想法.想把整个web前端开发所需要的知识都之中在一个视图中,形成一个完整的web前端知识体系,目的 ...

  5. WEB前端知识体系脑图

    说在开始的话: 我上大学那会,虽说主要是学Java语言,但是web前端也稍微学了一些,那时候对前端也没多在意,因为涉入的不深,可以搞一个差不多可以看的界面就可以了,其他也没过多在意. 因为稍微了解一点 ...

  6. web前端知识体系大全

    1. 前言 大约在几个月之前,让我看完了<webkit技术内幕>这本书的时候,突然有了一个想法.想把整个web前端开发所需要的知识都之中在一个视图中,形成一个完整的web前端知识体系,目的 ...

  7. web前端知识体系小结(转)

    1. 前言 大约在几个月之前,让我看完了<webkit技术内幕>这本书的时候,突然有了一个想法.想把整个web前端开发所需要的知识都之中在一个视图中,形成一个完整的web前端知识体系,目的 ...

  8. Web前端知识体系精简

    Web前端技术由html.css和javascript三大部分构成,是一个庞大而复杂的技术体系,其复杂程度不低于任何一门后端语言.而我们在学习它的时候往往是先从某一个点切入,然后不断地接触和学习新的知 ...

  9. Web前端知识体系

    看到一篇不错的文章,拿来收藏和分享. 原文:http://mp.weixin.qq.com/s/UFTfdE7LYhHquWEzwZKLCQ Web前端技术由html.css和 javascript三 ...

随机推荐

  1. tomcat下部署两个工程时,只有一个可以访问,另一个出现404错误,该如何解决

    tomcat下部署两个工程时,只有一个可以访问,另一个出现404错误,该如何解决 在开发新项目的时候,有时候为了省时,直接把曾经做过的项目工程A拷贝成改名为B工程,然后再在B工程上进行功能的开发, 此 ...

  2. js文件需要jsp页面中的div时,此js文件必须在div之后才能获得值,否则获取不到

    js文件需要jsp页面中的div时,此js文件必须在div之后才能获得值,否则获取不到 2.图2的内容为directionkey.js的内容

  3. django报错TypeError at /items/join(), no dict

    今天写Django模板的时候突然发现报了这个错误.stackflow了一下.改了一种dict的表达模式后成功解决. 错误: 报错写法: context = {'blogs': Blog.objects ...

  4. Java 8 后的新功能梳理

    为什么要写这篇文章 经过了若干年的发展,Java逐步从java8升级为java11,java17. 让我们对比学习一下最新一版的LTS版本和java8比起来让代码简化了多少. 文本块(Text Blo ...

  5. 【九度OJ】题目1183:守形数 解题报告

    [九度OJ]题目1183:守形数 解题报告 标签(空格分隔): 九度OJ 原题地址:http://ac.jobdu.com/problem.php?pid=1183 题目描述: 守形数是这样一种整数, ...

  6. 【LeetCode】Largest Number 解题报告

    [LeetCode]Largest Number 解题报告 标签(空格分隔): LeetCode 题目地址:https://leetcode.com/problems/largest-number/# ...

  7. 【LeetCode】824. Goat Latin 解题报告(Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 日期 题目地址:https://leetcode.c ...

  8. Laravel 使用 maatwebsite/Excel 3.1 实现导入导出的简单方法

    官方文档 https://docs.laravel-excel.com/3.1/getting-started git地址 https://github.com/maatwebsite/Laravel ...

  9. Springcloud-alibaba学习实践(2)- nacos&Eureka Server服务注册实践

    前言:上一篇已搭建好了springcloud服务注册中心(Nacos&Eureka Server),本篇继续代码实践,注册服务到服务中心,本篇只是演示了两种注册中心,后续我们以Nacos注册中 ...

  10. CS5211|DP转LVDS |低成本DP to LVDS Conversion 方案设计

    目前市面上DP转LVDS转换--DP to LVDS Conversion 方案设计有以下: 龙迅LT8911 LT7211.普瑞PS8625.昆泰CH7511等方案,DP换LVDS转换主要是用在一些 ...