HTML代码优化之标签语义化
来源:互联网 发布:阿里云ecs开放端口 编辑:程序博客网 时间:2024/06/08 12:09
在HTML、CSS、JavaScript这三大元素中,HTML才是重要的,结构才是重点,样式是用来修饰结构的。正确的做法是先确定HTML,确定语义的标签,再来选用适合的CSS。
如何确定标签是否语义良好?
判断标签语义化是否良好的一个简洁方法:去掉样式,看网页结构是否组织良好有序,是否仍然有良好的可读性。语义良好的网页去掉样式后结构依然很清晰。
除了去掉样式后的可读性,值得重点提及的还有h标签。h标签的语义是”标题”,搜索引擎对这个标签比较敏感,尤其是h1和h2.一个语义良好的页面,h标签应该是完整有序没有断层的。也就是说,要按照h1、h2、h3、h4这样的顺序排列下来,不要出现类似h1、h3、h4漏掉h2的情况。
下面列举一些常见的模块
(1)标题和内容
html部分:
<div class="title"> <h2>标签的语义</h2> <a href="#">更多>></a></div><p>段落一的内容......<strong>根据浏览器的默认样式</strong>......</p><p>段落二的内容</p>
css部分:
.title{border-bottom: 1px dashed #FFF;text-align: right;}.title h2{float: left;}p{text-indent: 2em;line-height: 150%; margin: 0 0 20px 0;}strong{color: red;font-weight: normal;}
当页面内标签无法满足设计需要时,才会适当添加div和span等无语义标签来辅助实现
(2)表单
这种表单模式,可以使用如下的方案实现其效果
<form action="#" method="get"> <fieldset> <legend>登录表单</legend> <p> <label for="name">账号:</label> <input type="text" id="name"/> </p> <p> <label for="pas">密码:</label> <input type="password" id="pw"/> </p> <input type="submit" value="登录" class="subBtn"/> </fieldset></form>
分析一下语义
<表单 action="#" method="get"> <域集> <域集名>登录表单</域集名> <段落> <表单项说明 for="name">账号:</表单项说明> <表单项 type="text"/> </段落> <段落> <表单项说明 for="pas">密码:</表单项说明> <表单项 type="password"/> </段落> <表单项 type="submit" value="登录" class="subBtn"/> </域集></表单>
一般来说,表单域要用fieldset标签包起来,并用legend标签说明表单的用途。因为fieldset默认有边框,而legend也有默认的样式,为满足设计需要,可以将fieldset的”border”设为”none”,把legend的”display”设为”none”,以此来兼顾语义和设计两方面的要求。每个input标签对应的说明文本都需要使用label标签,并且通过为input设置id属性,在label标签中设置”for=someid”来让说明文本和相应的input标签关联起来。
(3)表格
这种表格模式,可以使用如下的方案实现其效果
<table border="1"> <caption>几种页面实现的比较</caption> <thead> <tr> <th>实现方式</th> <th>代码量</th> <th>搜索引擎良好</th> <th>特殊终端兼容</th> </tr> </thead> <tbody> <tr> <th>table布局</th> <td>多</td> <td>差</td> <td>一般</td> </tr> <tr> <th>乱用标签的css布局</th> <td>少</td> <td>一般</td> <td>差</td> </tr> <tr> <th>标签语义良好的css布局</th> <td>少</td> <td>好</td> <td>好</td> </tr> </tbody></table>
分析一下语义
<表格 border="1"> <表格标题>几种页面实现的比较</表格标题> <表格头部> <表格行> <表头>实现方式</表头> <表头>代码量</表头> <表头>搜索引擎良好</表头> <表头>特殊终端兼容</表头> </表格行> </表格头部> <表格主体> <表格行> <表头>table布局</表头> <表格单元格>多</表格单元格> <表格单元格>差</表格单元格> <表格单元格>一般</表格单元格> </表格行> <表格行> <表头>乱用标签的css布局</表头> <表格单元格>少</表格单元格> <表格单元格>一般</表格单元格> <表格单元格>差</表格单元格> </表格行> <表格行> <表头>标签语义良好的css布局</表头> <表格单元格>少</表格单元格> <表格单元格>好</表格单元格> <表格单元格>好</表格单元格> </表格行> </表格主体></表格>
方案二的语义清晰了很多,在使用表格的时候,应该注意选用合适的标签,表格标题要用caption,表头要用thread包围,主体部分用tbody包围,尾部要用tfoot包围,表头和一般的单元格要区分,表头用th,一般表格用td
语义标签化应注意的一些问题
为了保证网页去掉样式后的可读性,并且又符合Web标准,应注意以下几点:
(1)尽可能少使用无语义标签div和span
(2)在语义不明显,即可以使用p也可以使用div的地方,尽量使用p,因为p默认样式下有上下间距,去样式后的可读性更好,对兼容终端有利。
(3)不要使用纯样式标签,例如b、font和u等,改用css设置。语义上需要强调的文本可以包在strong或em标签里,strong和em有“强调”的语意,其中strong的默认样式是加粗,而em的默认样式是斜体。
参考资料:《编写高质量代码Web前端开发修炼之道》
(完)
- HTML代码优化之标签语义化
- HTML概述之语义化标签
- HTML语义化标签
- HTML语义化标签
- HTML标签语义化
- HTML语义化标签
- html语义化标签
- html标签语义化:
- HTML标签语义化
- HTML标签语义化
- HTML语义化标签
- HTML标签语义化
- HTML-标签语义化
- HTML标签语义化
- HTML 标签语义化
- HTML标签语义化
- HTML标签语义化
- html标签语义化罗列
- MySQL数据库总结
- ubuntu 安装openssh-server
- shell脚本简单实例
- FastJson的基本使用
- SaltStack安装及配置
- HTML代码优化之标签语义化
- windows 常见环境变量(%AppData%、%TEMP%、%TMP%)
- 大话设计模式之装饰者模式
- 如何上传本地代码到github
- 超声图像
- linux VI编辑模式的操作命令
- 6、HotSpot之垃圾收集器
- 爬取淘宝女郎的照片-写给初步入门爬虫的读者
- java.lang.ClassNotFoundException: com.mysql.jdbc.Driver