重构HTML

1. 良构

起始标签+结束标签

空元素写法<img />

所有元素必须有值   (XHTML不支持只有名没有值)

所有的属性值有引号(XHTML)

文本中 & 转义为 &amp

文本中 <  转义为 &lt

唯一的根元素html

元素和属性名要小写(XHTML)

勿重叠<a><p></a></p> 因为不同浏览器的处理结果不同

文本编码为UTF-8(所有浏览器支持)

2. 有效性

使用alt属性

object代替embed,applet

<em>代替<i>

<strong>代替<b>

所有表现性元素<small><big>,用CSS代替了。

XHTML的主体只包含块元素,用div把行内元素抱起来????????

3. 布局

div+css代替<frame>

4. 可用性

为表单添加tabindex

时间: 2024-10-10 19:48:41

重构HTML的相关文章

关于重构工作的一点思考

最近两周一直忙着和重构相关的事情,本文将简要概述从开始制定重构方案,到具体执行的过程中遇到的问题,以及对重构的一点理性思考. 起因: 本系统是2015年11月开始建设,当时为了快速投入使用,大量的烂代码,后期一直保持快速前进,没有进行过实质性的重构. 具体表现: ● 分层不清,sql哪都有,dao有.service也有,就差controller没写了.同样dao也包含业务逻辑. ● sql用的是spring jdbc,并没有使用mybatis,导致sql写起来有些复杂,封装不够基本都是原始sql

我们需要重构吗

当我开始写这篇文章的时候 ,我的思想还处于斗争阶段,多年来我也在程序开发的第一线,经历了很多项目,也编写了很多代码,但是从心里说我几乎没有用到重构这一方法,但最近看一本书名字叫<重构 改善既有代码的设计> ,它让我感觉我这些年的迷惑终于找到了明灯. 我以前认为代码只要实现了就OK了,不用再去动他了,不管当时实现时绕了多少个圈,用了多少冗余代码.有时候想想也是既然已经实现了,干嘛还要化那么多精力去装饰那些代码,而且保证系统功能正常运行和项目按时完成是第一要务,剩下的一切都变得不在重要了.当我开始

重构二叉树

重构二叉树 这是剑指offer中关于二叉树重构的一道题.题目原型为: 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树.假设输入的前序遍历和中序遍历的结果中都不含重复的数字.例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回. 一.二叉树的数据结构 做题之前,我们先熟悉下二叉树的数据结构.其一,定义:二叉树是一个连通的无环图,并且每一个顶点的度不大于3.有根二叉树还要满足根结点的度不大于2.有了根结点之后,每个顶点定

跟王老师学接口:(五)实例:对电子宠物系统进行重构

对电子宠物系统进行重构 主讲教师:王少华   QQ群号:483773664 一.重构需求 定义Eatable接口,在接口中定义eat()方法,表示吃饭功能 定义FlyingDiscCatchable接口,在接口中定义catchingFlyDisc()方法,表示接飞盘功能 定义Swimmable接口,在接口中定义swim()方法,表示游戏功能 定义抽象类Pet,包括宠物名称(name).健康值(health)和与主人亲密度(love)属性,并提供抽象方法print(),用来输出宠物信息 定义狗类(

重构第10天:提取方法(Extract Method)

理解:经常写的代码中,有一些计算逻辑比较复杂的方法,写下来一个很长很长的方法,我们可以把这个方法,根据功能,分解成单独的几个小方法.这样做不仅能够增加代码的可维护性,而且增加了易读性. 详解: 重构前代码: 1 public class Receipt 2 { 3 private IList<decimal> Discounts { get; set; } 4 private IList<decimal> ItemTotals { get; set; } 5 6 public de

重构第9天:提取接口(Extract Interface)

理解:提取接口的意思是,多于一个类共同使用某个类中的方法或属性,那么我们可以把这些方法和属性提出来,作为一个单独的接口.这样的好处是解除代码间的依赖,降低耦合性. 详解: 先看重构前的代码: 1 public class ClassRegistration 2 { 3 public void Create() 4 { 5 // create registration code 6 } 7 8 public void Transfer() 9 { 10 // class transfer code

重构第6天:降低字段(Push Down Field)

理解:和提升字段正好相反,跟降低方法类似,就是把基类中,只有部分继承类需要用到的字段,降低到继承类自身去. 详解: 重构前代码: 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 6 namespace _31DaysRefactor 7 { 8 public abstract class Task 9 { 10 protected string _res

重构中对设计模式的反思

什么是设计模式? 每一类编程语言都具有其自身的特性,就像是面向对象的语言,其特性就是封装,继承,多态,抽象. 同一时候,使用每一类编程语言开发软件时也都有一些设计准则,这些准则保证了软件的质量,即具有良好的设计. 而设计模式则是广大软件开发者总结出的开发经验技巧,它们利用编程语言的特点,实现这些准则.因此,能够想象,当我们对设计模式熟悉到一定程度后,在设计系统时.我们眼里就会变得没有设计模式,仅仅有设计准则,真正达到手中无剑.心中有剑的境地. 在学习设计模式时.到底要学什么?      曾经.在

[机房重构]UML图(包图、类图、用例图、时序图)

机房重构画图是一个非常重要的一个阶段,机房重构之前也画过UML的图,但是这一次与上一次不同,这一次有分层的思想在里面. 包图 之前三层的时候各层之间的传递很清晰,包图也很容易就画出来了,先来看之前三层的包图.通过实体将输入的信息从U层传入B层,同时通过实体将信息从D层传入B层,B层进行判断,通过实体将结果返回给U层. 之前的三层不能很好的实现低耦和的思想,并且我们学习了设计模式,要继续进行分层,进行七层的编写.之前不太理解,看大家的博客,知道在U层和B层之间加入了外观模式,降低U层和B层之间的耦

重构的WechatLog

重构前 class WechatLog < ActiveRecord::Base has_many :wechats belongs_to :wechat_platform has_many :img_text_messages def self.add_wechat_text_message(options = {}) keyword = WechatPlatformKeyword.find_by(name: options[:content]) trigger_type = keyword.