下面是读书笔记,若有错误或不足,欢迎指出。一起交流,共同进步:http://www.cnblogs.com/chemandy/
 
---------------------------------------------------------------------------------------

一、良构
1. 名称改小写:所有元素和属性的名称都要小写,大部分的实体名称也要小写,当然涉及大写字母的除外。
2. 给属性加引号:为所有属性值都加上引号。
3. 补足遗漏的属性值:为所有不带属性值的属性加上属性值。
4. 将控标签替换为空元素标签:将如<br>这样的元素替换为<br class="empty" />。
5. 添加结束标签:关闭所有的段落、清单项目、表格单元格和其他非空的元素。
6. 消除重叠:在父级元素上关闭每一个子元素。
7. 把文本转换为utf-8:把所有的文本重新编码为Unicode UTF-8。
8. 转义小于号:把<转义为 &lt; 。
9. 转义&号:把&转义为 &amp; 。
10. 转义属性值中的引号:在属性值中把 " 转义为 &quot; 或把 ' 转义为 &apos; 。
11. 加入XHTML DOCTYPE声明
12. 结束每一个实体引用:在每一个实体引用后加上分号。
13. 替换虚构的实体引用:确保文档中用到的尸体引用都是由定义的。
14. 加入跟元素html:确保每一个文档都有一个html根元素。
15. 加入XHTML命名空间:为每一个html元素加 xmlns="http://www.w3.org/1999/xhtml" 属性。
---------------------------------------------------------------------------------------
二、有效性
1. 加入过渡性DOCTYPE声明:在每一个文档的开头都插入XHTML过渡性DOCTYPE声明。
2. 删除所有不该存在的标签:消灭所有异数。
3. 给img添加alt属性:给没有alt属性的img标签上一个。
4. 用object替代embed:把所有的embed元素更换为object元素。
5. 加入严格型DOCTYPE声明:在每一个文档的开头都插入XHTML严格型DOCTYPE声明。
6. 用css替代center:把所有center元素转化为div或相应的语义元素,然后在使用CSS的text-align属性实现居中。
7. 用css替代font:把所有的font元素改为div、span或其他相应语义的元素,然后应用css的font属性实现呈现效果。
8. 用em或css替代i:把所有i元素转换为em、span或相应的语义化元素。
9. 用strong或者css替代b:把所有的b元素转换为strong元素或span元素。
10. 用css替换各种颜色属性:把所有HTML文档中的颜色的描述移入CSS样式表中。
11. 把img元素的属性转换为css属性:把img元素中的align、border、hspace和vspace属性都删掉,并用css规则取而代之。
12. 用object替代applet:把所有applet元素改为object元素。
13. 用css替换表现性元素:删除所有的big、small、strike、s、tt和u等表现性元素,并插入相应的CSS或语义元素。
14. 把行内(lnline)元素放到块(block)元素中:给所有的行内元素加上块级的父元素,并在段落中删除所有的块级元素。
---------------------------------------------------------------------------------------
三、布局
1. 替换表格布局:把所有的表格布局都删除,代之以线性化内容的div元素。然后使用css样式表按你想要的形式地位div。
2. 使用css定位替代框架:把框架转化为单一页面。
3. 把内容放到最前面:在顺序读取原始HTML源码时,主要内容应该放到最前面。侧栏、页头、页脚和导航栏等部分应该跟在内容之后。
4. 正确标记列表:列表需要用ul元素来标记,或者有些情况下使用dl或ol元素来标记。
5. 用css替换blockquote/ul的缩进:对于知识为了缩进效果才使用blockquote或ul元素,把它们转为div,然后使用css的margin-left或margin-right属性进行缩进你操作。
6. 替换占位图片:把所有用于占位的GIF都删除。必要时使用CSS的margin、padding、和indent属性来复现这些效果。
7. 添加id属性:为每一个元素赋予唯一的id,以便可以快速定位。
8. 为图片添加width和height属性:为所有没有width和height属性的img元素添加这两个属性。
---------------------------------------------------------------------------------------
四、可访问性
1. 把图片转换为文本:使用图片本身包含的文本取代图片,然后使用标记和css规则模拟相关的样式。
2. 为表单输入框添加标签label:对于非隐藏的input, textarea, select等表单元素,确保他们都有相应的标签。
3. 使用标准的字段名称:重写表单和处理表单的脚本,为如电子邮件地址、信用卡号和电话号码等使用惯用的名称。
4. 开启自动完成(表单):在适当的情况下吧autocomplete="off"删除。
5. 为表单添加Tab索引,支持tabindex属性的7个元素:a, area, button, input, object, select, textarea:为每一个可编辑的、非隐藏的表单字段添加tabindex属性。
6. 加入“跳过”机制:为每个页面开头放一个“不可见”链接,直接跳到页面主要内容上
7. 添加内部标题:对于比较长的网页,在合适的位置放置h1~h6元素
8. 把链接和标题里重要的内容放到前面:在每个标题和链接里,吧最重要的、最突出的内容放在前面。
9. 加大输入框:保证所有的表单有足够的空间,让用户更容易填写所有必需的字段。
10. 加入表格描述:为每个表格添加caption元素和/或summary属性。给每一行或每一列的标签使用th元素。
11. 加入acronym元素:给缩写词(abbreviation)和字首组合词(acronym)分别包一层abbr和acronym标签。
12. 加入lang属性:给每个根元素添加lang和xml:lang属性,用于指出文档使用的主要语言。在用其他语言编写的文档中的任何元素,也应该添加值为股改语言的lang和xml:lang属性。
---------------------------------------------------------------------------------------
五、Web应用程序
1. 用POST替换不安全的GET:重新设计那些不安全的操作,让他们能够通过POST而不是GET来处理数据。
2. 用GET替换安全的POST:重新设计那些安全的操作,通过GET而不是POST来访问数据。
3. 重定向POST为GET:把响应POST的脚本重新设计为重定向到浏览器,而不是直接执行结果。
4. 启用缓存:启用缓存控制头,可以在恰当的时候缓存动态生成的页面。
5. 阻止缓存:应用缓存控制头,让那些迅速变化的页面总是可以从服务器载入最新的版本。
6. 使用ETag:为Web应用程序生成的半静态页面提供Etag。
7. 用HTML替换FLASH:把Flash网站转为HTML,为所有的Flash内容提供一个纯的版本。
8. 增加Web Forms 2.0类型:为表单的文本输入添加属性type="email | url  | date | time | datetime | localdatetime | month | week | number",识别预期的数据类型。
9. 用mailto链接取代联系表单:把联系表单改为实在的mailto链接。
10. 封禁机器人:在希望封禁机器人的目录中加上robots.txt文件,安装一个蜜罐程序来检测和封禁不礼貌的机器人和歹毒的爬虫。
11. 转义用户的输入:把所有用户提供的数据进行转义。
---------------------------------------------------------------------------------------
六、内容
1. 修正拼写:使用拼写检查其检查所有的文本。
2. 修复坏链接:尽可能修复所有坏链接,修复不了的就删除掉。
3. 移动页面:重新组织URL的结构,对开发者、访问者和搜索引擎更透明,但要保证旧的URL能够继续工作。
4. 删除入口页面:把内容放到首页上。
5. 隐藏电子邮件地址:公布在Web页面上的电子邮件地址应该进行编码,防止垃圾信息机器人的采集。

转载于:https://www.cnblogs.com/chemandy/archive/2011/03/25/1995696.html

《重构HTML改善Web应用的设计》读书笔记相关推荐

  1. 读书笔记 | 墨菲定律

    1. 有些事,你现在不做,永远也不会去做. 2. 能轻易实现的梦想都不叫梦想. 3.所有的事都会比你预计的时间长.(做事要有耐心,要经得起前期的枯燥.) 4. 当我们的才华还撑不起梦想时,更要耐下心来 ...

  2. 读书笔记 | 墨菲定律(一)

    1. 有些事,你现在不做,永远也不会去做. 2. 能轻易实现的梦想都不叫梦想. 3.所有的事都会比你预计的时间长.(做事要有耐心,要经得起前期的枯燥.) 4. 当我们的才华还撑不起梦想时,更要耐下心来 ...

  3. 洛克菲勒的38封信pdf下载_《洛克菲勒写给孩子的38封信》读书笔记

    <洛克菲勒写给孩子的38封信>读书笔记 洛克菲勒写给孩子的38封信 第1封信:起点不决定终点 人人生而平等,但这种平等是权利与法律意义上的平等,与经济和文化优势无关 第2封信:运气靠策划 ...

  4. 股神大家了解多少?深度剖析股神巴菲特

    股神巴菲特是金融界里的传奇,大家是否都对股神巴菲特感兴趣呢?大家对股神了解多少?小编最近在QR社区发现了<阿尔法狗与巴菲特>,里面记载了许多股神巴菲特的人生经历,今天小编简单说一说关于股神 ...

  5. 2014巴菲特股东大会及巴菲特创业分享

     沃伦·巴菲特,这位传奇人物.在美国,巴菲特被称为"先知".在中国,他更多的被喻为"股神",巴菲特在11岁时第一次购买股票以来,白手起家缔造了一个千亿规模的 ...

  6. 《成为沃伦·巴菲特》笔记与感想

    本文首发于微信公众帐号: 一界码农(The_hard_the_luckier) 无需授权即可转载: 甚至无需保留以上版权声明-- 沃伦·巴菲特传记的纪录片 http://www.bilibili.co ...

  7. 读书笔记002:托尼.巴赞之快速阅读

    读书笔记002:托尼.巴赞之快速阅读 托尼.巴赞是放射性思维与思维导图的提倡者.读完他的<快速阅读>之后,我们就可以可以快速提高阅读速度,保持并改善理解嗯嗯管理,通过增进了解眼睛和大脑功能 ...

  8. 读书笔记001:托尼.巴赞之开动大脑

    读书笔记001:托尼.巴赞之开动大脑 托尼.巴赞是放射性思维与思维导图的提倡者.读完他的<开动大脑>之后,我们就可以对我们的大脑有更多的了解:大脑可以进行比我们预期多得多的工作:我们可以最 ...

  9. 读书笔记003:托尼.巴赞之思维导图

    读书笔记003:托尼.巴赞之思维导图 托尼.巴赞的<思维导图>一书,详细的介绍了思维发展的新概念--放射性思维:如何利用思维导图实施你的放射性思维,实现你的创造性思维,从而给出一种深刻的智 ...

  10. 产品读书《滚雪球:巴菲特和他的财富人生》

    作者简介 艾丽斯.施罗德,曾经担任世界知名投行摩根士丹利的董事总经理,因为撰写研究报告与巴菲特相识.业务上的往来使得施罗德有更多的机会与巴菲特亲密接触,她不仅是巴菲特别的忘年交,她也是第一个向巴菲特建 ...

最新文章

  1. Java-JVM虚拟机内存垃圾回收机制gc入门:引用类型,对象标记算法,回收算法,常见的 garbage collector
  2. pe修改rpc服务器不可用,ABBYY FineReader 12出现“RPC服务不可用”怎么办
  3. 让程序在崩溃时体面的退出之SEH
  4. java开发遇到最大的问题_java开发遇到的问题总结(三)
  5. Magento教程 23:如何获取销售报表?
  6. Tips--解决安装matplotlib无法使用pyplot的问题
  7. 华为交换机开机后接口等一直闪_交换机的工作原理
  8. 3D字体海报的这么玩?效果很赞,不得不学!
  9. hpml350服务器安装系统,安装HP ML350
  10. python dir()
  11. 修改Nodejs内置的npm默认配置路径
  12. 关于过程改进和能力提升
  13. 中华黑豹计算机病毒,关于中华黑豹病毒...-爱毒霸交流论坛
  14. ai杀手级_设计师的10个杀手级Adobe Photoshop技巧
  15. 某宝双十一自动养猫,解放你的双手得喵币
  16. RC电路充放电时间的计算
  17. M1卡破解(自从学校升级系统之后,还准备在研究下)
  18. mysql查询近一年数据
  19. 搜索计算机找不到,win7找不到搜索框怎么办?win7找不到搜索框修复方法
  20. JIRA REST API调用方式

热门文章

  1. LeetCode(485)——最大连续1的个数(JavaScript)
  2. LeetCode(999)——车的可用捕获量(JavaScript)
  3. 【Vue】—计算属性
  4. 排序数组中的两个数字之和
  5. Safari 是什么
  6. 马云创造的就业机会多还是毁掉的就业机会多?
  7. 如何区分真的工厂还是假的工厂
  8. 有人说男人赚钱都是为了女人,这话说的有道理吗?
  9. 怎么用U盘重装系统?
  10. It is worth noting that among the four