WEB学习笔记10-高可读性的HTML之HTML 语义化
实现如下所示工具栏:

做到标签语义化,首先要尽量减少使用<div>和<span>这两个标签。
分析:这是一个包含5个无序操作项的工具栏,因此应该使用符合语义的<ul>标签。如下:
<ul id ="reader_main_action" class="reader-main-action">
<li class="reader-action-library"></li>
<li class="reader-action-spliter"></li>
<li class="reader-action-toc"></li>
<li class="reader-action-spliter"></li>
<li class="reader-action-note"></li>
<li class="reader-action-bookmark"></li>
<li class="reader-action-hightlight"></li>
</ul>
但总共就5个操作项,而此方案使用了7个li标签,单纯从语义上看,两个分隔符和其他5个操作项具有同等重要的地位,故去掉两个多余的<li>,使用CSS实现分隔符的效果,改进如下:
<ul id ="reader_main_action" class="reader-main-action">
<li class="reader-action-library"></li>
<li class="reader-action-toc spliter"></li>
<li class="reader-action-note splite"></li>
<li class="reader-action-bookmark"></li>
<li class="reader-action-hightlight"></li>
</ul>
以上是使用CSS样式实现了分隔符的样式,以下是使用:before伪类实现的一种方式,当然如果考虑支持IE7以下浏览器,也可以使用设置背景图的方式。
.reader-main-action.spliter{
margin-left:30px;
}
.reader-main-action.spliter:before{
content:'|';
line-height:28px;
font-size:20px;
color:#888;
cursor:default;
text-indent:;
float:left;
margin:0-20px;
}
以上方法是将无关内容彻底从HTML中分离出来,删除干扰语义的标签。但是,假设搜索引擎解析到这段HTML代码,从语义上只能分析出这5个操作项的工具栏,具体每个操作项的作用则不得而知,可以添加文字进一步说明,修改如下:
1 <ul id ="reader_main_action" class="reader-main-action">
2 <li class="reader-action-library">Library</li>
3 <li class="reader-action-toc spliter">toc</li>
4 <li class="reader-action-note splite">Note</li>
5 <li class="reader-action-bookmark">Bookmark</li>
6 <li class="reader-action-hightlight">Hightlight</li>
7 </ul>
由于操作项在界面中显示的是图标按钮,因此需要把文字隐藏起来,如下,CSS,即可实现文字的隐藏。
.reader-main-action li{
text-indent:-9999px;
}
验证HTML代码语义性,需要隐藏CSS代码,禁用CSS代码样式后,此方案显示效果如图:

注意:
1.在合适的地方使用适合的标签
<h>:标题,在网页中展示各层级的标题时使用;
<ul>/<ol>:列表,在展现各种数据列表或者菜单时使用
<p>,定义段落
<em>告诉浏览器把其中的文本表示为强调的内容。对于所有浏览器来说,这意味着要把这段文字用斜体来显示。
<strong>用加粗的字体(相对于斜体)来显示其中的内容
<table>表格
<br>标签仅仅用于文本内容中的换行
<blockquote>定义块引用
<header>定义文档的页眉(介绍信息)
<footer>定义 section 或 document 的页脚
<article>定义一些来自外部的内容
<section>定义文档中的节
<nav>定义导航链接的部分
<aside>当前页面或文章的附属信息部分,它可以包含与当前页面或主要内容相关的引用、侧边栏、广告、导航条,以及其它类似的有别与主要内容的部分
2.熟悉各标签上规范的属性,给HTML标签设置必要的属性
<img>,alt是必须要设置的属性,因为<img>是自闭合标签,并没有包含可以解释说明图片的额外信息。
<!—alt属性除了对图片做解释说明之外,也作为图片在浏览器中未加载时显示的代替文字-->
<img src="/img/loading.gif" alt="data loading…" />
<!—title属性是对元素的解释说明,并且作为在浏览器中当鼠标移到元素上时显示的提示文本-->
<a href="" title=""></a>
3.样式和结构分离
CSS中的两个伪类:before和:after,适合以上分隔符的使用。
例:清除元素的浮动
<div id="main">
<div class="sidebar">this is the side bar.</div>
<div class="content">this is the main content.</div>
<div class="clear"></div>
</div>
对应的CSS样式为:
.sidebar { float: left; width:150px; }
.container { float:right; width:450px;}
.clear { clear:both; }
但是这种写法破坏了HTML代码的语义,并不是一种好的方案,应该删除这个多余的<div>元素,并改用CSS样式来实现,代码如下:
<div id="main clearfix">
<div class="sidebar">this is the side bar.</div>
<div class="content">this is the main content.</div>
</div>
对应的CSS类clearfix的声明为:
.clearfix {
*zoom:;
}
.clearfix:before,----before伪类
.clearfix:after {---after伪类
display: table;
content: "";
}
.clearfix:after {
clear: both;
}
另外,在构建页面的时候,经常会要添加图片,原则是,如果图片是作为页面内容的一部分,则应该使用<img>元素,如果图片仅仅是起装饰作用,则应该使用背景图方式。
4.给空标签中添加隐藏文字,用于说明标签的实际功能
把原来该用文字表达的效果替换为图片,建议给空标签添加一定的说明文字,并让文字隐藏起来,这样既提高了代码的语义,又满足了设计上的需求。一般可通过设置text-indent来达到隐藏文字的目的。
WEB学习笔记10-高可读性的HTML之HTML 语义化的更多相关文章
- [原创]java WEB学习笔记10:GenericServlet
本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...
- [原创]java WEB学习笔记75:Struts2 学习之路-- 总结 和 目录
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- spring cloud(学习笔记)高可用注册中心(Eureka)的实现(二)
绪论 前几天我用一种方式实现了spring cloud的高可用,达到两个注册中心,详情见spring cloud(学习笔记)高可用注册中心(Eureka)的实现(一),今天我意外发现,注册中心可以无限 ...
- golang学习笔记10 beego api 用jwt验证auth2 token 获取解码信息
golang学习笔记10 beego api 用jwt验证auth2 token 获取解码信息 Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放 ...
- Spring MVC 学习笔记10 —— 实现简单的用户管理(4.3)用户登录显示全局异常信息
</pre>Spring MVC 学习笔记10 -- 实现简单的用户管理(4.3)用户登录--显示全局异常信息<p></p><p></p>& ...
- JavaScript:学习笔记(10)——XMLHttpRequest对象
JavaScript:学习笔记(10)——XMLHttpRequest对象 XHR对象 使用XMLHttpRequest (XHR)对象可以与服务器交互.您可以从URL获取数据,而无需让整个的页面刷新 ...
- JAVA Web学习笔记
JAVA Web学习笔记 1.JSP (java服务器页面) 锁定 本词条由“科普中国”百科科学词条编写与应用工作项目 审核 . JSP全名为Java Server Pages,中文名叫java服务器 ...
- [原创]java WEB学习笔记95:Hibernate 目录
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- [原创]java WEB学习笔记66:Struts2 学习之路--Struts的CRUD操作( 查看 / 删除/ 添加) 使用 paramsPrepareParamsStack 重构代码 ,PrepareInterceptor拦截器,paramsPrepareParamsStack 拦截器栈
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- thinkphp学习笔记10—看不懂的路由规则
原文:thinkphp学习笔记10-看不懂的路由规则 路由这部分貌似在实际工作中没有怎么设计过,只是在用默认的设置,在手册里面看到部分,艰涩难懂. 1.路由定义 要使用路由功能需要支持PATH_INF ...
随机推荐
- 嵌套if-esle语句
C语言自学之嵌套if-esle语句 Dome : 获奖条件为年销售业绩100万以上,并且入职满两年的员工.小明进入公司1年,销售业绩为120万. 在代码编辑器中使用嵌套if-else语句判断小明是否有 ...
- Jan.07
Jan.07 英文朗读 be good for对...好 be bad for/be harmful to对..不利. Smoking is not good for your health. 吸烟对 ...
- JQ菜单滑块
网站导航滑块效果: 复制以下代码保存到html文件中即可查看效果... <html> <head> <title>JQ菜单滑块</title> < ...
- lr_场景设计之知识点-集合点、loadgenerator
1.controller原理 通过场景设计来模拟用户的真实操作并调用bugen中的脚本,再通过设置的压力机产生压力,在场景运行中实时监控用户的执行情况,tps,响应时间,吞吐量,服务器资源使用情况: ...
- Python_Mix*re模块,元字符,量词
模块: 模块就是一组功能的集合,你要和某个东西打交道,而这个东西本身和Python没有关系,这个东西本身就存在,Python提供了一个功能的集合,专门负责和这个东西打交道. 模块的类型: 内置模块 不 ...
- Windows 2008 安装Sql server 2005
Windows 2008 安装Sql server 2005 进入下载的文件中,双击打开:splash.hta 文件进行安装 根据自己的系统来选择性进行安装,这里我们选择第二项:基于 x64 的操作系 ...
- Linux快捷键 Linux权限
第1章 回顾昨天内容 1.1 取出网卡ip地址 取出文件权限 1.2 awk '找谁{干啥}' awk 'NR==2{print $4}' 1.3 系统时间 [root@oldboyedu-40-n ...
- 整数中x出现的次数
求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1.10.11.12.13因此共出现6次,但是对于后面问题他就没辙了.ACMer ...
- dataset数据来源方式两种,页面展示
这两种方式都能获取到报表类别数据. <%--ds 数据源来自JavaBean--%><model:dataset id="ds"> <model:re ...
- javascript switch 陷阱
javascript switch 相等用的是===,就是说不进值相同,类型也要相同 用string的时候,发现无论如何都不满足条件,后来发现是类型不同 string有对象string,还有基本类型s ...