本文引用自如下网址的博客,并在个别文字描述上稍作修改
原文地址:http://www.cnblogs.com/freeyiyi1993/p/3615179.html
1、什么是HTML语义化
HTML标签可分为有语义的标签和无语义的标签。比如有语义的标签中table表示表格,form表示表单,a标签表示超链接,strong标签表强调。无语义标签典型的有<div>
和<span>
。
HTML语义化就是根据页面内容的结构(结构语义化),选择合适的语义标签(标签语义化)来书写html页面
2、为什么要语义化
1、裸奔时好看:为了在去掉或丢失CSS样式的情况下,页面也能呈现出很好地内容结构、代码结构
2、有利于SEO:爬虫依赖于语义标签来确定上下文和各个关键字的权重,有助于爬虫抓取更多的有效信息
3、方便其他设备解析:使屏幕阅读器、盲人阅读器、移动设备等以一种有意义的方式来渲染网页;
4、便于团队开发和维护:语义化代码更具可读性,遵循这个标准可以减少差异化。
3、写HTML代码时应注意什么?
1、尽量使用有语义的标,如标题(H1~H6
)、列表(ul、ol、li、dd、dl、dt
)、强调(strong、em
)、段落(p
)等
2、尽可能少使用无语义的标签div
和span
;
3、在语义不明显时,既可以使用div
或者p
时,尽量用p, 因为p在默认情况下有上下间距,对兼容特殊终端有利;
4、不要使用纯样式标签,如:b、font、u等,改用css设置。
5、需要强调的文本,可以包含在strong或者em标签中(浏览器预设样式,能用CSS指定就不用他们),strong默认样式是加粗(不要用b),em是斜体(不用i);
6、使用表格时,标题要用caption,表头用thead,主体部分用tbody包围,尾部用tfoot包围。表头和一般单元格要区分开,表头用th,单元格用td;
7、表单域要用fieldset标签包起来,并用legend标签说明表单的用途;
8、每个input标签对应的说明文本都需要使用label标签,并且通过为input设置id属性,在lable标签中设置for=someld来让说明文本和相对应的input关联起来。
4、HTML5新增的语义标签
请见这位前端大拿的blog
HTML 5的革新——语义化标签(一)
HTML 5的革新——语义化标签(二)
另外摘录这位大拿的另一篇blog中的一句话:
删除了 DOCTYPE 时,以哪种“渲染模式”展示您html页面的权利就完全交给了浏览器,每种浏览器可能都有他们一套渲染模式~这肯定会影响代码验证,而且也决定了浏览器如何显示你的Web文档。
W3C说:别担心,既然不能删除,那我来简化它!于是就有了如下的HTML5的 DOCTYPE
<!DOCTYPE html >
<!--HTML5的 DOCTYPE-->