背景介绍
HTML结构语义化,是最近几年才提出来的,以前的html结构,都是一堆的没有语义的冷冰冰的标签。最泛滥的就是div+css,以前的页面,一上来就是一堆的div+css,
为了改变这种这种状况,开发者们和官方提出了让HTML结构语义化的概念,并且官方w3c,也在HTML5给出了几个新的语义化的标签。
什么是语义化
字面意思就是说根据我们所说的话,就能了解其中的含义。
语义化,故名思意,就是你写的HTml结构,是用相对应的有一定语义的英文字母(标签)表示的,标记的,因为HTML本身就是标记语言。不仅对自己来说,容易阅读,书写。别人看你的代码和结构也容易理解,甚至对一些不是做网页开发的人来说,也容易阅读。
什么是HTML语义化
首先标签语义化是指HTML,不是CSS, 语义化标签只是HTML,CSS不存在语义化。HTML是标签,CSS是属性。
在最初html里标签的语义,我们看到table,就会知道这是列表,看到p,就知道这是段落,看到img知道是图片,看到input就知道这是一个表单,h1~h6是标题。 机器和人类相比笨多了,但是只要我们设定好程序,上面的标签的意思机器也能读懂。
但是也有些是无语义化的如div—division并不能表示div标签里面内容的属性和表现样式
HTML 标签语义化是让大家直观的通过标签(markup)和属性(attribute)来知道其用途和作用。
怎样判断标签是否语义化
去掉样式,看网页结构是否组织良好有序,是否仍然有很好的可读性。
写HTML代码时应注意什么
- 尽可能少的使用无语义的标签div和span;
- 在语义不明显时,既可以使用div或者p时,尽量用p, 因为p在默认情况下有上下间距,对兼容特殊终端有利;
- 不要使用纯样式标签,如:b、font、u等,改用css设置。
- 需要强调的文本,可以包含在strong或者em标签中(浏览器预设样式,能用CSS指定就不用他们),strong默认样式是加粗(不要用b),em是斜体(不用i);
- 使用表格时,标题要用caption,表头用thead,主体部分用tbody包围,尾部用tfoot包围。表头和一般单元格要区分开,表头用th,单元格用td;
- 每个input标签对应的说明文本都需要使用label标签,并且通过为input设置id属性,在lable标签中设置for=someld来让说明文本和相对应的input关联起来
实现HTML语义化好处有哪些
- 清晰的页面结构。去掉或样式丢失的时候,也能让页面呈现清晰的结构,增强页面的可读性。
- 支持更多的设备。屏幕阅读器会完全根据你的标记来“读”你的网页。更好的支持浏览器的阅读模式等。
- 有利于SEO(搜索引擎优化)。和搜索引擎建立良好沟通,有助于爬虫抓取更多的有效信息,搜索引擎的爬虫也依赖于标记来确定上下文和各个关键字的权重。
- 便于团队开发和维护。在团队中大家都遵循同一个标准,可以减少很多差异化的东西,方便开发和维护,提高开发效率,甚至实现模块化开发。
- 方便其他设备解析(如屏幕阅读器、盲人阅读器、移动设备)以意义的方式来渲染网页;