二十二 声明 Declarations

80酷酷网    80kuku.com

  

这篇文章说明怎么定义文档。

定义文档声明类型

在网页的最顶部,你需要建立一个声明文档。

没有指定的文档,你的html不仅是不正确的html而且大部分浏览器会采用'quirks mode'解释它们,意味着浏览器不会理解你的主意而会采用它们自己的方法解析代码。你的HTML代码没有缺点,完美无缺,但没有声明文档,或者是错误的声明文档,你的网页看起来就像近视眼在东拼西凑,学习有困难的长臂猿婴儿。

1.0 Strict声明文档:

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

下面是xhtml 1.1,更优秀的下一个版本的xhtml,不过现在还有点问题。

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

如果你刚从html 4.过度过来,或是Netscape 4的拥护者,可以使用 1.0 Transitional

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

使用它的唯一原因是需要适应老的很少的浏览器,Transitional 1.0 允许旧的html 4表现元素,那样可以在Netscape 4老版本浏览器拥有更好的表现,但是使用这些元素会建少网页的可用性。

最后,如果你是有使用fram的怪癖,使用 1.0 Frameset声明文档。

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

注意DOCTYPE标签有点叛逆需要在前面标记感叹号,而且它打破规则是唯一不要闭合的标签。

Language declarations 语言声明

你应该通过HTTP header或html开始标签里的xml:lang属性确定文档的语言。虽然这不是正确的xhtml文档必须的,但出于可用性考虑。值是缩写形式,比如'en'代表英语,'fr'代表法语等待。

例子:

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">

声明主要语言之后,如果内容里使用其他语言,可以使用xml:lang比如 <span xml:lang="de">HTML Hund</span>)。

Content types

html文档的媒体类型和字符设定同样需要指定,比如使用HTTP header:

Content-Type: text/html; charset=UTF-8

前面部分(这里是text/html)是文件的MIME type,它让浏览器了解文件的媒体类型和作用。所有文件有许多类型的MIME type,一个JPEG图片是image/jpeg,一个是text/css,HTML的是text/html

后面部分是字符设定。

使用'HTTP-equivalent' meta标签是建立HTTP header最容易的方法,如下:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

有些许复杂,但更加优越(由于这是一个正确的HTTP header和压缩的HTML),就向服务器端语言PHP中这样:

<? header("Content-Type: text/html; charset= UTF-8"); ?>

如果你想使用服务器端语言,你可以直接使用'.htaccess'文件在服务器设定。大部分服务器(兼容Apache)可以用一个在根目录名为'.htaccess'的文件,可以在里面定义所有'.html'文件MIME type和字符设定。

AddType text/html;charset=UTF-8 html

西方经常设定字符为'ISO-8859-1',基于拉丁文的语言,日本语是'SHIFT_JIS' ,'UTF-8'是Unicode Transformation Format的一个版本,提供唯一字符在大部分语言中更广阔的使用范围。基本的,你需要设定字符让用户了解。除了你正在使用一个基于拉丁文的语言(包括英语),ISO-8859-1可以到处使用的地方,你应该用UTF-8,因为它可以显示大部分语言的大部分字符,而且是非常安全的代码,因为它在大部分用户的电脑里都工作。

可以在elsewhere on the web了解更多。

应该使用application/xhtml+xml MIME type。这是一个xml程序。不幸的是,大部分浏览器没有它的线索。所以通常使用text/html。根据W3C,xhtml 1.0可以使用text/html,但xhtml 1.1就不行了。但你可以在服务器端设定MIME type。

Htmldog使用php设定 1.1使用application/xhtml+xml MIME type服务明白这个的浏览器比如Mozilla,为其他浏览器比如IE设定 1.O Stricttext/html。程序如下:

<?if(stristr(\$_SERVER["HTTP_ACCEPT"],"application/xhtml+xml")){header("Content-Type: application/xhtml+xml; charset=UTF-8");echo('<!DOCTYPE html PUBLIC "-//W3C//DTD  1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">');} else {header("Content-Type: text/html; charset=UTF-8");echo ('<!DOCTYPE html PUBLIC "-//W3C//DTD  1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">');}?>

检查浏览器是否接受application/xhtml+xmlMIME type,如果是,MIME type采用 1.1,如果不是采用text/html。

除了安心你知道你正在做正确的事情和为自己在将来做正确的事情准备,使用这个方法的直接好处就是Mozilla会视你的文件为XML程序,如果你的文件不提交到ie完全不工作,没有很好成形。你可以通过一个校验而不需要运行文档进行调试。



分享到
  • 微信分享
  • 新浪微博
  • QQ好友
  • QQ空间
点击: