HTML高級教程 聲明_XHTML教程
教程Tag:暫無Tag,歡迎添加,賺取U幣!
在你每一個頁面的頂端,你需要文檔聲明。是的,必須。
如果不指定文檔類型,你的HTML不是合法的HTML,并且大部分瀏覽器會用“怪癖模式(quirks mode)”來處理頁面,這意味著瀏覽器認為你自己也不知道究竟做什么,并且按瀏覽器自己的方式來處理你的代碼。你可以是一個HTML大師,在地球上打遍天下無敵手,或者你的HTML可以無瑕疵,CSS可以很完美,但如果沒有文檔聲明,或者錯誤的文檔聲明,你的網頁與一個短視的,獨眼的長臂猿嬰兒十分艱難地堆砌起來的沒兩樣。
XHTML 1.0 Strict(嚴格)的文檔聲明是這樣的:
下面的是XHTML 1.1的文檔聲明,作為XHTML的最新版本,看起來更完美,但還是有一些問題,隨后我們會稍微講解……
如果你不愿放棄HTML 4或者你還有Netscape 4死忠用戶,你可以使用XHTML 1.0 Transitional(過渡型):
你使用這的唯一理由是你還要兼容老版本的,少用的瀏覽器。過渡型XHTML 1.0允許HTML 4的表現元素,其也可能在如Netscape 4的瀏覽器中表現更好。但使用這些元素將對你網頁的效率和可用性有害。
最后,如果你是使用框架的怪人之一,可以使用像下面一樣的XHTML 1.0 Frameset(框架)文檔類型聲明:
注意DOCTYPE標簽必須大寫和前置一個英文半角感嘆號!。它是唯一一個打破規(guī)則的標簽,它不需要關閉。
語言聲明
即使HTTP頭或者在html起始標簽內設置了xml:lang屬性,你也必須為文檔指定一個主要語言。盡管處理一個合法的XHTML文檔這不是必須的,但也是一個易用性的考慮。值是縮寫的,比如en(English,英語),fr(French,法語),de(German,德語)或者mg(Malagasy,這是什么語?譯者也不知道,呵呵。——譯者注)。
聲明一個主要用英語內容的文檔,例子是這樣的:
在聲明主要語言之后,假如還需要使用其他語言,你還可以在內聯中使用xml:lang屬性(比如<span xml:lang="de">HTML Hund</span>)。
內容類型
HTML文檔的媒體類型和字體集也許要指定,可以使用HTTP頭來完成,比如:
HTTP頭部的第一部分(如text/html)是文件MIME類型,讓瀏覽器知道文件的媒體類型因此可以知道怎么處理。所有的文件都有MIME類型。JPEG圖像是image/jpeg,CSS文件是text/csss和HTML一般使用text/html。
HTTP頭部的第二部分(如UTF-8部分)是字符集。
也許設置HTTP頭的最簡易方法是在HTML中使用“HTTP同義(HTTP-equivalent)”的頭標簽,像這樣:
些微復雜當更好的方法是使用服務器端腳本語言來發(fā)送頭。用PHP的話,你可以這樣做:
如果你不愿意(或不能)使用服務器端腳本語言,你也許可以直接給服務器設置一個“.htaccess”文件。大部分服務器(Apache兼容)可以在根目錄使用一個“.htaccess”的小文本文件,寫入下面的內容,你就可以把所有的“html”后綴文件都與MIME類型和字符集關聯:
字符集包括大部分西方基于拉丁文語言的“ISO-8859-1”,日語的“SHIFT_JIS”,中文的“GB18030”和UTF-8,一個 Unicode Transformation Format版本,提供大范圍的多種語言的單個字符�;旧�,你應該使用一個你知道的,能為你用戶清楚認知的字符集。除非你使用基于拉丁語的語言(包括英語)(ISO-8859-1被普遍接受的),你應該使用UTF-8因為它可以顯示大多數語言的大多數字符,使用它也是安全的,因為它可以在大部的計算機上使用。
關于更多你可以閱讀elsewhere on the web。
注意
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)。為每一個頁面的頂部加入如下代碼:
這些檢查核實瀏覽器是否接受application/xhtml+xml的MIME類型,如果接受,就發(fā)送這個MIME類型并把XHTML 1.1文類類型寫到HTML中。如果這個MIME類型不被接受,就發(fā)送text/html的MIME類型并把XHTML 1.0 Strict(嚴格)的文檔類型寫入HTML。
除了你知道你正在做著正確的事情和為自己準備將來的路的平和想法外,最直接的益處就是,使用這個方法,Mozilla瀏覽器把你的文件當作XML程序對待并且如果你的XHTML還沒有抓癢,就是說不合式的,Mozilla就不會工作。然后你就可以排錯了,而不需要用校驗器來運行你的文檔了。
如果不指定文檔類型,你的HTML不是合法的HTML,并且大部分瀏覽器會用“怪癖模式(quirks mode)”來處理頁面,這意味著瀏覽器認為你自己也不知道究竟做什么,并且按瀏覽器自己的方式來處理你的代碼。你可以是一個HTML大師,在地球上打遍天下無敵手,或者你的HTML可以無瑕疵,CSS可以很完美,但如果沒有文檔聲明,或者錯誤的文檔聲明,你的網頁與一個短視的,獨眼的長臂猿嬰兒十分艱難地堆砌起來的沒兩樣。
XHTML 1.0 Strict(嚴格)的文檔聲明是這樣的:
示例代碼 [www.hl5o.cn]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
下面的是XHTML 1.1的文檔聲明,作為XHTML的最新版本,看起來更完美,但還是有一些問題,隨后我們會稍微講解……
示例代碼 [www.hl5o.cn]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
如果你不愿放棄HTML 4或者你還有Netscape 4死忠用戶,你可以使用XHTML 1.0 Transitional(過渡型):
示例代碼 [www.hl5o.cn]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
你使用這的唯一理由是你還要兼容老版本的,少用的瀏覽器。過渡型XHTML 1.0允許HTML 4的表現元素,其也可能在如Netscape 4的瀏覽器中表現更好。但使用這些元素將對你網頁的效率和可用性有害。
最后,如果你是使用框架的怪人之一,可以使用像下面一樣的XHTML 1.0 Frameset(框架)文檔類型聲明:
示例代碼 [www.hl5o.cn]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
注意DOCTYPE標簽必須大寫和前置一個英文半角感嘆號!。它是唯一一個打破規(guī)則的標簽,它不需要關閉。
語言聲明
即使HTTP頭或者在html起始標簽內設置了xml:lang屬性,你也必須為文檔指定一個主要語言。盡管處理一個合法的XHTML文檔這不是必須的,但也是一個易用性的考慮。值是縮寫的,比如en(English,英語),fr(French,法語),de(German,德語)或者mg(Malagasy,這是什么語?譯者也不知道,呵呵。——譯者注)。
聲明一個主要用英語內容的文檔,例子是這樣的:
示例代碼 [www.hl5o.cn]
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
在聲明主要語言之后,假如還需要使用其他語言,你還可以在內聯中使用xml:lang屬性(比如<span xml:lang="de">HTML Hund</span>)。
內容類型
HTML文檔的媒體類型和字體集也許要指定,可以使用HTTP頭來完成,比如:
示例代碼 [www.hl5o.cn]
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)”的頭標簽,像這樣:
示例代碼 [www.hl5o.cn]
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
些微復雜當更好的方法是使用服務器端腳本語言來發(fā)送頭。用PHP的話,你可以這樣做:
示例代碼 [www.hl5o.cn]
<? header("Content-Type: text/html; charset= UTF-8"); ?>
如果你不愿意(或不能)使用服務器端腳本語言,你也許可以直接給服務器設置一個“.htaccess”文件。大部分服務器(Apache兼容)可以在根目錄使用一個“.htaccess”的小文本文件,寫入下面的內容,你就可以把所有的“html”后綴文件都與MIME類型和字符集關聯:
示例代碼 [www.hl5o.cn]
AddType text/html;charset=UTF-8 html
字符集包括大部分西方基于拉丁文語言的“ISO-8859-1”,日語的“SHIFT_JIS”,中文的“GB18030”和UTF-8,一個 Unicode Transformation Format版本,提供大范圍的多種語言的單個字符�;旧�,你應該使用一個你知道的,能為你用戶清楚認知的字符集。除非你使用基于拉丁語的語言(包括英語)(ISO-8859-1被普遍接受的),你應該使用UTF-8因為它可以顯示大多數語言的大多數字符,使用它也是安全的,因為它可以在大部的計算機上使用。
關于更多你可以閱讀elsewhere on the web。
注意
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)。為每一個頁面的頂部加入如下代碼:
示例代碼 [www.hl5o.cn]
<? if(stristr($_SERVER["HTTP_ACCEPT"],"application/xhtml+xml")){ header("Content-Type: application/xhtml+xml; charset=UTF-8"); echo('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 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 XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">'); } ?>
這些檢查核實瀏覽器是否接受application/xhtml+xml的MIME類型,如果接受,就發(fā)送這個MIME類型并把XHTML 1.1文類類型寫到HTML中。如果這個MIME類型不被接受,就發(fā)送text/html的MIME類型并把XHTML 1.0 Strict(嚴格)的文檔類型寫入HTML。
除了你知道你正在做著正確的事情和為自己準備將來的路的平和想法外,最直接的益處就是,使用這個方法,Mozilla瀏覽器把你的文件當作XML程序對待并且如果你的XHTML還沒有抓癢,就是說不合式的,Mozilla就不會工作。然后你就可以排錯了,而不需要用校驗器來運行你的文檔了。
相關XHTML教程:
- HTML5 INPUT placeholder及兼容性處理
- HTML表單里的Label標簽
- 淺析HTML與javascript中常用編碼
- CSS網頁布局中必須要了解的幾個XHTML標簽
- title和alt 標簽介紹及其異同
- 淺析HTML標簽strong和em的區(qū)別
- 說說XHTML中的alt屬性和title屬性
- Semantics語義是Html Xhtml是否真正符合標準的重要部分
- 九個W3C XHTML1.0及CSS標準認證需要注意的問題
- 請注意頁面head區(qū)域的編碼是不是規(guī)范
- HTML validate - 驗證HTML代碼穿越多重瀏覽器標準
- XHTML具有語義的標簽:有關H1位置的討論
- 相關鏈接:
- 教程說明:
XHTML教程-HTML高級教程 聲明
。