[随笔] 语义化

187 阅读2分钟

语义是说话所表达的意思,多数的语义是由文字来承载的。

在编程语言里,无法通过变量、程序语句来表达语义,让人或者机器理解。此时,语义类标签便诞生了。笔者认为,在前端里,语义所承载的任务就是传达出网页的结构。

那么先具体展开来说说,为什么需要语义类标签?

在说为什么需要之前,先来说说如果不用语义类标签呢?说实在的,单纯用div和span标签就可以实现大多数的网页的样式。比如说,实现一个todo list,完全可以直接使用div标签,把每项todo包在一个div里,这不就做出来了吗?实现一个按钮,完全可以直接div,然后设置一个class,通过class修改它的样式,也可以做出来。

但是问题就出在这里。假设说,你写完了这些代码,要交给同事去做,同事之前没有接触过这些代码,不清楚具体写的是什么。他拿到手一看:嗯?全是div和span,这是啥。然后废了老大劲去理解你的代码。看完了最后:哦!原来是要做一个list啊。

倘若在实现这个list的时候,用的是ul标签,同事看一眼就明白是在实现一个list。这便是语义类标签存在的意义,即传达出网页的结构。

使用语义类标签有许多的好处。

首先,对于开发者而言,使用语义类标签能增强代码的可读性,便于团队的开发和维护。

其次,对于SEO(search engine optimization搜索引擎最优化)而言,能够使搜索引擎爬虫更好地获取到网页中的有效信息,便于网页排名。

再者,对于机器阅读而言,比如现如今许多浏览器所推出的“阅读模式”,使用语义类标签能够使机器准确地表示出网页信息的主次关系;同时,也能够使视障用户在使用读屏软件时的体验得到提升。

要做到语义化,就要了解每个标签和属性的含义,语义化最重要的是传递内容,而不是传递样式;在项目过程中,思考什么标签最适合描述这个内容;避免使用可视化工具生成代码。

具体语义类标签有哪些,以及它们的使用场景,可以参考以下博客。juejin.cn/post/684490… 极客时间-重学前端04(使用维基百科来举例分析语义类标签的使用场景)