我们经常听到语义化,那它到底有多神秘呢,下面我们就来探讨探讨。
什么是Html语义化?
Html语义化是指根据内容的结构化(内容语义化),选择合适的标签(代码语义化)便于开发者阅读和写出更优雅的代码的同时让浏览器的爬虫和及其很好的解析。
为什么要语义化呢?
-清晰的页面结构
去掉或样式丢失的时候,也能让页面呈现清晰的结构,增加页面的可读性。
-支持更多的设备
屏幕阅读器(如果访客有视障)会完全根据你的标记来“读”你的网页。如果你使用的含语义的标记,屏幕阅读会根据你的标签来判断网页的内容,而不是一个字母一个字母的拼写出来。
-有利于SEO
和搜索引擎建立良好的沟通,有助于爬虫抓取更多的有效信息,搜索引擎的爬虫也依赖于标记来确定上下文和各个关键字的权重。
-便于团队开发和维护
在团队中大家都遵循同一个标准,可以减少很多差异化的东西,方便开发和维护,提高开发效率,甚至实现模块化开发。
-有利于用户体验
Html5语义化标签
-header
header标签定义section或document的页眉。
-nav
nav标签定义导航链接的部分。规范上说nav只能用在页面主要导航部分上。
-footer
footer标签定义文档或节的页脚。
footer元素应当含有其包含元素的信息。页脚通常包含文档的作者、版权信息、使用条款链接、联系信息等等。
-aside
nav标签定义article以外的内容。aside的内容应该与article的内容相关。aside的内容用作文章的侧边栏。
-article,section
-hgroup
-figure,figcaption
-details,summary
在写HTML代码时应该注意些什么?
-根据文档上下文结构合理的选用最适合表达当前语义的标签;
-尽可能少的使用无语义的标签div和span;
-不要使用纯样式标签,如b、font、u等,一切表现该用css设置;
-h标签的使用应该根据重要性逐级递减,没有断层。并且一个页面只能有一个h1;
-提高关键词密度,如图片替换alt,链接说明title;
-正确使用内容容器,如段落p,列表ul, ol, li, dl, dt, dd
-需要强调的文本,可以包含在strong或者em标签中(浏览器预设样式,能用CSS指定就不用他们),strong默认样式是加粗(不要用b),em是斜体(不用i);
-使用表格时,标题要用caption,表头用thead,主体部分用tbody包围,尾部用tfoot包围。表头和一般单元格要区分开,表头用th,单元格用td;
-表单域要用fieldset标签包起来,并用legend标签说明表单的用途;
-每个input标签对应的说明文本都需要使用label标签,并且通过为input设置id属性,在lable标签中设置for=someld来让说明文本和相对应的input关联起来。
参考文献:
1.谈谈对HTML语义化的理解
2.理解HTML语义化
3.Web语义化
4.Html5语义化标签