title | date | tags | categories |
---|---|---|---|
什么是语义化理解HTML标签 |
2017-09-29 15:52:50 -0700 |
Html |
Html |
我们经常会在一些网站上看到“语义化理解HTML标签”,那么什么是语义化呢?
<header>
<h1>继承</h1>
</header>
<section></section>
<footer></footer>
<div>
<div style="font-size: 2em;font-weight: bold;">继承</div>
</div>
<div></div>
<div></div>
通过观察我们发现上面两段代码,产生的效果都是一样的,那么上面的有什么优势呢? 优势就是他向我们展示了一个完整的结构,是有头有尾有区域块的,所以语义化就是让标签和其所包裹的内容相吻合
根据内容的结构化(内容语义化),选择合适的标签(代码语义化)便于开发者阅读和写出更优雅的代码的同时让浏览器的爬虫和机器很好地解析。
- 为了在没有CSS的情况下,页面也能呈现出很好地内容结构、代码结构;
- 提高用户体验:例如title、alt用于解释名词或解释图片信息、label标签的活用;
- 有利于SEO:和搜索引擎建立良好沟通,有助于爬虫抓取更多的有效信息:爬虫依赖于标签来确定上下文和各个关键字的权重;
- 方便其他设备解析(如屏幕阅读器、盲人阅读器、移动设备)以意义的方式来渲染网页;
- 便于团队开发和维护,语义化更具可读性,是下一步吧网页的重要动向,遵循W3C标准的团队都遵循这个标准,可以减少差异化。
- 尽可能少的使用无语义的标签div和span;
- 在语义不明显时,既可以使用div或者p时,尽量用p, 因为p在默认情况下有上下间距,对兼容特殊终端有利;
- 不要使用纯样式标签,如:b、font、u等,改用css设置。
- 需要强调的文本,可以包含在strong或者em标签中(浏览器预设样式,能用CSS指定就不用他们),strong默认样式是加粗(不要用b),em是斜体(不用i);
- 使用表格时,标题要用caption,表头用thead,主体部分用tbody包围,尾部用tfoot包围。表头和一般单元格要区分开,表头用th,单元格用td;
- 表单域要用fieldset标签包起来,并用legend标签说明表单的用途;
- 每个input标签对应的说明文本都需要使用label标签,并且通过为input设置id属性,在lable标签中设置for=someld来让说明文本和相对应的input关联起来。