语言格式,HTML头部声明文件类型、语言和字符集的方法"/>
html 语言格式,HTML头部声明文件类型、语言和字符集的方法
HTML头部声明文件类型、语言和字符集的方法
在你每一个页面的顶端,你需要文件声明。是的,必须。
如果不指定文件类型,你的HTML不是合法的HTML,并且大部分浏览器会用“怪癖模式(quirks
mode)”来处理页面,这意味着浏览器认为你自己也不知道究竟做什么,并且按浏览器自己的方式来处理你的代码。你能是个HTML大师,在地球上打遍天下无敌手,或你的HTML能无瑕疵,CSS能非常完美,但如果没有文件声明,或错误的文件声明,你的网页和一个短视的,独眼的长臂猿婴儿十分艰难地堆砌起来的没两样。
XHTML 1.0 Strict(严格)的文件声明是这样的:
/p>
XHTML 1.0 Strict//EN"
".dtd">
下面的是XHTML
1.1的文件声明,作为XHTML的最新版本,看起来更完美,但还是有一些问题,随后我们会稍微讲解……
/p>
XHTML 1.1//EN"
".dtd">
如果你不愿放弃HTML 4或你更有Netscape 4死忠用户,你能使用XHTML 1.0
Transitional(过渡型):
/p>
XHTML 1.0 Transitional//EN"
".dtd">
你使用这的唯一理由是你还要兼容老版本的,少用的浏览器。过渡型XHTML 1.0允许HTML
4的表现元素,其也可能在如Netscape 4的浏览器中表现更好。但使用这些元素将对你网页的效率和可用性有害。
最后,如果你是使用框架的怪人之一,能使用像下面相同的XHTML 1.0 Frameset(框架)文件类型声明:
/p>
XHTML 1.0 Frameset//EN"
".dtd">
注意DOCTYPE标签必须大写和前置一个英文半角感叹号!。他是唯一一个打破规则的标签,他不必关闭。
语言声明
即使HTTP头或在html起始标签内设置了xml:lang属性,你也必须为文件指定一个主要语言。尽管处理一个合法的XHTML文件这不是必须的,但也是个易用性的考虑。值是缩写的,比如en(English,英语),fr(French,法语),de(German,德语)或mg(Malagasy,这是什么语?译者也不知道,呵呵。??译者注)。
声明一个主要用英语内容的文件,例子是这样的:
xmlns=""
xml:lang="en">
在声明主要语言之后,如果还需要使用其他语言,你还能在内联中使用xml:lang属性(比如
xml:lang="de">HTML
Hund
)。内容类型
HTML文件的媒体类型和字体集也许要指定,能使用HTTP头来完成,比如:
Content-Type: text/html; charset=UTF-8
HTTP头部的第一部分(如text/html)是文件MIME类型,让浏览器知道文件的媒体类型因此能知道怎么处理。所有的文件都有MIME类型。JPEG图像是image/jpeg,CSS文件是text/csss和HTML一般使用text/html。
HTTP头部的第二部分(如UTF-8部分)是字符集。
也许设置HTTP头的最简易方法是在HTML中使用“HTTP同义(HTTP-equivalent)”的头标签,像这样:
content="text/html; charset=UTF-8" />
些微复杂当更好的方法是使用服务器端脚本语言来发送头。用PHP的话,你能这样做:
header("Content-Type: text/html;
charset= UTF-8"); ?>
如果你不愿意(或不能)使用服务器端脚本语言,你也许能直接给服务器设置一个“.htaccess”文件。大部分服务器(Apache兼容)能在根目录使用一个“.htaccess”的小文本文件,写入下面的内容,你就能把所有的“html”后缀文件都和MIME类型和字符集关联:
AddType text/html;charset=UTF-8 html
字符集包括大部分西方基于拉丁文语言的“ISO-8859-1”,日语的“SHIFT_JIS”,中文的“GB18030”和UTF-8,一个
Unicode Transformation
Format版本,提供大范围的多种语言的单个字符。基本上,你应该使用一个你知道的,能为你用户清晰认知的字符集。除非你使用基于拉丁语的语言(包括英语)(ISO-8859-1被普遍接受的),你应该使用UTF-8因为他能显示大多数语言的大多数字符,使用他也是安全的,因为他能在大部的计算机上使用。
注意
XHTML应该当作application/xhtml+xml的MIME类型来使用,再清晰不过,这是XML程式。不幸的是,大部分浏览器没有对这没有第一线索。所以,一般认为使用text/html的MIME类型是不错的。根据W3C的建议和网页标准工程的未来亮点,调味的XHTML
1.0也许能作text/html使用,但XHTML 1.1不应该,这就是这个网站以XHTML 1.0
Strict(严格)作为例子,假定text/html的MIME类型。不过你仍然能(或许不应该)为他们设置正确的MIME类型给浏览器,轻微的调用一下服务器端即可。
这个网站使用PHP为XHTML
1.1设置application/xhtml+xml的MIME类型给那些能够理解和处理这个类型的浏览器(如Mozilla),为XHTML
1.0 Strict设置text/html给其他浏览器(如IE)。为每一个页面的顶部加入如下代码:
if(stristr($_SERVER["HTTP_ACCEPT"],"application/xhtml+xml")){
header("Content-Type: application/xhtml+xml; charset=UTF-8");
echo(’/p>
1.1//EN"
"’">.dtd">’);
} else { header("Content-Type: text/html; charset=UTF-8"); echo
(’/p>
Strict//EN"
"’">.dtd">’);
} ?>
这些检查核实浏览器是否接受application/xhtml+xml的MIME类型,如果接受,就发送这个MIME类型并把XHTML
1.1文类类型写到HTML中。如果这个MIME类型不被接受,就发送text/html的MIME类型并把XHTML 1.0
Strict(严格)的文件类型写入HTML。
除了你知道你正在做着正确的事情和为自己准备将来的路的平和想法外,最直接的益处就是,使用这个方法,Mozilla浏览器把你的文件当作XML程式对待并且如果你的XHTML还没有抓痒,就是说不合式的,Mozilla就不会工作。然后你就能排错了,而不必用校验器来运行你的文件了。
更多推荐
html 语言格式,HTML头部声明文件类型、语言和字符集的方法
发布评论