DOCTYPE解释及w3c strict模型
在遵循标准的任何Web文档中,DOCTYPE都是一项必需的元素。它会影响代码验证,并决定了浏览器最终如何显示你的web文档。在默
认情况下,FF和IE的解释标准是不一样的,也就是说,如果一个网页没有声明DOCTYPE,它就会以默认的DOCTYPE解释下面的HTML。
一 什么是DOCTYPE
DOCTYPE是Document
Type(文档类型)的简写,在页面中,用来指定页面所使用的XHTML(或者HTML)的版本。要想制作符合标准的页面,一个必不可少的关键组成部分就
是DOCTYPE声明。只有确定了一个正确的DOCTYPE,XHTML里的标识和CSS才能正常生效。
二 DOCTYPE文档类型
HTML 4.01的3种类型:
<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01//EN” ” /TR/html4/strict.dtd”>
<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN” ” /TR/html4/loose.dtd”>
<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Frameset//EN” ” /TR/html4/frameset.dtd”>
XHTML 1.0 规定3种 XML 文档类型:Strict、Transitional 以及 Frameset
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Strict//EN” “/TR/xhtml1/DTD/xhtml1-strict.dtd”>
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Frameset//EN” “/TR/xhtml1/DTD/xhtml1-frameset.dtd”>
Strict – 严格类型 Transitional – 过渡类型 Frameset – 框架类型
<!DOCTYPE HTML> 这是HTML5中的声明
在所有 HTML 文档中规定文档类型很重要,这样浏览器才能了解所预期的文档类型。
HTML 4.01 中的 doctype 需要引用一个 DTD,这是因为 HTML 4.01 基于 SGML。HTML 5 不基于 SGML,也不需要引用 DTD,但是需要声明文档类型让浏览器按照它们应该的方式来运行。
整个互联网的世界能够通过W3C Strict验证的不多,那么要通过W3C的验证有哪些要注意的呢?
一、DOCTYPE 声明
DOCTYPE 声明声明为文档提供一个空间,通过引用外部文件、通过直接声明或通过这两种方式来标识其根元 素和文档类型定义 (DTD)。严格类型的声明上面已经提供了。
二、注意标签闭合。
<meta>,<img>,<link>。
<meta name=”keywords” content=”" />, <img src=”images/qq.gif” alt=”" width=”32″ height=”32″ />, <link href=”mycss.css” rel=”stylesheet” type=”text/css” />。 至于成对的标签闭合,相信大家都知道,也会注意。如 <p></p>,需成对出现。
三、js文件引用写法
在调用外部JS文件时,要注意标准写法,<script type=”text/javascript” src=”qq.js”></script>。 xhtml 1.0 strict 是不支持 lanuage 标签的。
四、target=”_blank”问题 在strict标准下,是不支持target 标签的。我们可以采用 rel=”external”来代替,不过,得首先在JS中预 先定义。
function externalLinks() { var linkArray = document.getElementsByTagName('a'); for (var i = 0; i < linkArray.length; i++) { var link = linkArray[i]; if (link.getAttribute('rel') == 'external') { link.target = '_blank'; } } }
五、标签属性不能缺少 六、注意引号不能缺少 七、把宽度,高度写到样式里面 八、<form>的位置问题 应该把form放在table的外面,而不是里面。
九、border属性问题 用样式定义border为0,否则图片的链接会有个蓝色边框。
十、大小写问题 strict标准中一律采用小写,js代码写法不受此点限制。
|