2007年1月16日星期二

HTML标准验证

记得以前做网页时候,直接写上<html>...</html>就完事了,在blogger模板的头部一般都有这么几行:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns='http://www.w3.org/1999/xhtml' xmlns:b='http://www.google.com/2005/gml/b' xmlns:data='http://www.google.com/2005/gml/data' xmlns:expr='http://www.google.com/2005/gml/expr'>

Template of the New Blogger这篇文章里也提过一句,后来看到台湾Tsung的文章才算了解了点皮毛。这不仅仅是把文档宣告为 XML, XHTML,HTML那么简单,DOCTYPE(document type declaration的缩写)定义了文档遵照(X)HTML的哪个版本,并且此标志一定出现在web页面的最头部。DOCTYPEs是一个web页面的关键组成部分,缺少它你的css定义和标记将不被承认有效。
DOCTYPE s对于诸如 Mozilla、IE5/Mac、IE6/Win等浏览器恰当地解释web文档页是很必要的,一般不同的浏览器对(X)HTML都有自己的解释,为了兼容各种浏览器DOCTYPE包含了一个URI地址,告诉浏览器如何渲染(X)HTML、CSS、DOM。使用过期的 DOCTYPE 或者不用,浏览器会假定你是在用旧模式下写的网页,为了向后兼容,将会使你的web文档显示如在90年代的IE4下一样。这当然不是你所期望的。
W3C网站上现在有一个标准DOCTYPE 格式的示例,实际上不用这么罗嗦(其实我自己也云里雾里),直接从W3C把他们拷贝下来就结了:

HTML 4.01 Strict, Transitional, Frameset
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
"http://www.w3.org/TR/html4/frameset.dtd">

XHTML 1.0 Strict, Transitional, Frameset
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

XHTML 1.1 DTD
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

参考网址:
HTML建议格式
HTML 4 DTD:HTML 4 Document Type Definition
W3C标准格式验证服务:看是否有html错误。我试着输入http://behindgfw.blogspot.com/,Oh MYGOD,数百条......
DTD教学

-原发 behindgfw.blogspot.com

没有评论: