2009-09-03 19 views
0

也許我是一個白癡,但我不太明白我的HTML標題中使用XHTML w/HTML5。這是還是不錯的,我們只是添加HTML5標籤?:如何設置您的Web服務器和文檔的HTML以正確提供HTML5文檔?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html dir="ltr" lang="eng" xmlns="http://www.w3.org/1999/xhtml"> 

或者是<!DOCTYPE html>還是什麼?

然後在列表除了他們說:

如果你用XHTML 5去,記住,你的服務器必須有一個MIME類型是application/xhtml + xml或text/xml文件傳送的文件。

請向我解釋,好像我是愚蠢的:)這是什麼意思在實際意義上? 「交付文件」?含義html? PHP會發生什麼?以這種方式設置您的Web服務器需要哪些步驟?

+1

順便說一下:lang =「en」,而不是lang =「eng」。 – Ms2ger 2009-09-11 09:02:12

+0

這是一個巨大的幫助: http://diveintohtml5.org/semantics.html – joedevon 2009-11-01 22:27:27

+1

@joedevon該鏈接不再有效,而應該是http://diveintohtml5.info/semantics.html – Chris 2012-05-16 11:18:32

回答

1

HTML5/XHTML5的文件類型是:<!DOCTYPE html> &在XHTML 5中,您需要指定名稱空間<html xmlns="http://www.w3.org/1999/xhtml">

Content type can be set in meta tag,正如任何其他HTML/XHTML文檔中,使用內容屬性,像

<meta content="text/html"> 

至於頭而言,它是recomended使用text/html爲HTML5 [和任何其他HTML]: (.html,.htm)或application/xhtml+xml, application/xml代替XHTML5 [or any other XHTML]: .xhtml, .xht, .xml

如果服務器沒有自動檢測到正確的內容類型,並設置它,因爲它應該(可以使用網絡面板Firebug檢查響應頭),它可以在PHP中設置,使用header功能,像這樣:

header("Content-Type: text/html"); 

您也可以negotiate content on Apache服務器。

以下是WHATWG Wiki says on mime types在(X)HTL5:

的XHTML序列化必須使用XML MIME類型來服務 ,如 應用/ XHTML + xml或 應用/ XML。與XHTML1不同,XHTML5 不得作爲text/html提供。

使用對XHTML不正確的MIME類型 (text/html的)將導致 文檔根據用於HTML 解析需求進行解析。在 換句話說,它將被視爲標籤 湯。確保使用XML MIME 類型是確保 瀏覽器將文檔作爲XML處理的唯一方法。

有關問題的一些閒書,你應該檢查Wikipedia entry on HTML5更多細節,以及WHATWG FAQ。如果您喜歡重讀,請致電HTML 5 last draft standard

最後,現在有few more differences之間的HTML和XHTML你應該檢查出來。

祝你好運!

+1

沒有意義。您可能想要引用,它用於聲明文檔的編碼。 – Ms2ger 2009-09-11 09:01:38

+1

雖然charset應該被引用以設置文檔編碼,但meta內容是html5標準,就像它在所有其他html/xhtml標準中一樣。它用於定義文檔的MIME類型。 – Krule 2009-09-13 19:24:18

1

XHTML5標準還沒有寫入,所以想要你想要的是不可實現的。另外,HTML5和XHTML 1.0是HTML不同的無關標準。

mime-type告訴用戶代理如何處理當前資源。這與doctype聲明不同,它告訴用戶代理當前資源的定義是什麼。基於SGML的HTML的MIME類型是text/html。 SGML格式的HTML包括:HTML 4,HTML 5,XHTML 1.0以及所有早期版本的HTML。必須使用僅適用於XHTML 1.1和XHTML 5的application/xml + html mime類型來處理HTML的XML格式。

SGML表單和XML表單之間最大的區別在於流暢性。 SGML表單本質上是一個文本文檔,通常被認爲是標籤湯,驗證通常是無關緊要的,瀏覽器盡力做到最好。在XML表單中,任何代碼中的任何錯誤都會導致文檔在用戶代理處失敗,並向屏幕拋出錯誤,就像其他編程語言一樣。在這種情況下,HTML的XML形式被視爲一種應用程序,其中的代碼被評估用於處理而不僅僅是一個平面文本的文字文檔。

使用SGML表單的優點是完全無能和無知的技術是完全可以接受的。如果瀏覽器處理代碼,那麼無論多麼無效,代碼都足夠好。這樣做的缺點是,體驗僅限於瀏覽器可視化處理給最終用戶的情況,這意味着協助技術處於嚴重劣勢。 XML表單的優點,尤其是如果使用模式而不是doctype定義的,XML文檔的作用就像是一個應用程序,它本身就能夠自我意識到自己的結構及其功能。它總是有效的或失敗的,這意味着代碼總是在語法上統一,這使得輔助技術的集成變得簡單和實用。 XML表單的缺點是無能和懶惰的作者不能發佈正確工作的文檔。就我個人而言,我並不認爲這是一個劣勢,因爲它對任何其他形式的計算絕對是其他方面的最低期望。

+0

XHTML5是HTML5的一部分。另外,「SGML表單」是一個寓言,只有一個「HTML序列化」。 – Ms2ger 2009-09-11 08:59:37

+0

HTML序列化是SGML格式。 XHTML5不是HTML5的一部分。 XHTML5旨在成爲HTML5的XML語法兼容形式。您可能需要閱讀有關SGML和XML的內容。 – 2009-09-11 12:53:05

+0

@austin:HTML5顯式不是SGML。在HTML5規範中將XHTML5定義爲HTML5的XML序列化。 – Kornel 2009-10-25 21:41:42

3

要正確提供HTML5文檔,您不必執行任何異常操作。服務器默認爲適合HTML5的內容類型。只是啓動文件:

<!DOCTYPE html> 
<meta charset=UTF-8> 

(元是不是絕對必要的,但它的使用是一個好主意,否則你可能會得到的Windows 1250編碼或更壞的東西)。

只有服務X HTML5需要額外的箍環才能跳過。您必須發送Content-Type: application/xhtml+xml標題。有沒有辦法做任何形式的文檔DOCTYPE或<meta>。它絕對必須是超出文檔的HTTP標頭。如何做到這一點取決於你使用的服務器/語言。在PHP中,你會怎麼做:

header("Content-Type:application/xhtml+xml;charset=UTF-8"); 

然而,你可能不希望這樣做,因爲IE根本不會支持XHTML5 。堅持HTML5,與傳統UA有更好的兼容性。

0

我仍然試圖將這個xHTML5的東西放在一起後,谷歌搜索。所以,使用這樣的:

<!DOCTYPE html> 
<html lang="en"> 
<head> 

<meta charset="utf-8" ?> 

...用此頭正確時:

標題( 「內容類型:應用/ XHTML + xml的;字符集= UTF-8」);

...從服務器。或者應該是這樣的:

<?xml version="1.0" encoding="utf-8"?> 
<!DOCTYPE html> 
<html lang="en"> 
<head> 

...真正的XHTML5擔任MIME類型 '的一個應用/ xhtml + xml'?

+0

這是一個單獨的問題? – SnareChops 2012-12-21 05:57:50

1

遲到比晚上好,我總是說。這是我一直在尋找歸途的回答時:

...當作爲服務「應用程序/ xhtml + xml」從服務器,會告訴它應該解析網頁瀏覽器用作xhtml而不僅僅是html。