2012-04-17 71 views
1

我一直在爲我的XHTML Transitional網頁使用validator.w3.org服務,並對此非常滿意 - 它很容易地向我顯示不正確的語法和未封閉的標籤。適用於HTML5的W3驗證程序

但是,我們在HTML5中編寫我們的新網站 - 所以Doctype自然而然地成爲了。 W3驗證器因此驗證頁面爲HTML5。我已經使用了一段時間,但只是意識到它沒有通知我未關閉標籤。例如,如果我用

<div><p>This is my text and I am not closing this P tag</div> 

那麼XHTML驗證會通知我上述問題,但對HTML5驗證不告訴我,上面是一個問題。有什麼辦法可以解決這個問題嗎?

此外,我已經自由使用如下,其中顯示了以下錯誤,如果確認爲XHTML代碼,但如果(5)驗證爲HTML沒有任何問題:

Line 266, Column 51: document type does not allow element "h5" here; missing one of "object", "applet", "map", "iframe", "button", "ins", "del" start-tag 

<a href="/outlet/" title="" rel='nofollow'><h5>OUTLET</h5></a> 

我想上面(在A元素中使用H5)在HTML5上是可以的,但是在意識到HTML沒有被驗證爲XHTML之後,我感到非常困惑!如果我想建立一個「高標準」的網頁 - 我遵循什麼標準?我當然想要使用HTML5,但我也想確保我的代碼具有正確的結束標記(如上面的P標記示例中所示),並遵循任何其他「良好標準」。請告訴你會做什麼?

非常感謝

+0

請嘗試http://html5.validator.nu/? – Edu 2012-04-17 09:28:49

+0

我檢查了它,但它也與validator.w3.org相似,因此它不會像上面那樣顯示錯誤,除非我強制驗證爲XHTML。強制驗證任何一個站點上的XHTML也會導致NAV,HEADER,FOOTER等HTML5元素出錯。但是,目前唯一的解決方案似乎是這樣的,但是我需要找出哪些錯誤關注我,哪些不關注(即,如果我將其驗證爲XHTML,則應該忽略HTML5無法識別的元素):( – rishijd 2012-04-17 09:36:27

回答

0

當在XHTML模式驗證,一切都符合那個規範。另一方面,html5規範允許很多自由。對於此特定情況,html5 specification on markup syntax說:

「非空元素必須具有結束標記,除非此引用的HTML元素部分中該元素的子部分指示其結束標記可以省略。

specification of paragraph element表示可以省略結束標記,如果它緊跟着div標記,就像在你的例子中一樣。如果p元素之後緊跟地址,物品,旁邊,blockquote,dir,div,dl,fieldset,footer,form,h1,h2,h3,h4,h4,則可以省略p元素的結束標記。 h5,h6,header,hr,menu,nav,ol,p,pre,section,table或ul元素,還是父元素中沒有更多內容,並且父元素不是一個元素。

我想你必須寫出有效的xhtml,如果你想要的那種一致性。你可以使用一些編輯器來檢查結束標籤嗎?

+0

感謝你的回覆我現在使用notepad ++ - 只是爲了我的信息,有什麼我可以用這個編輯器(或任何其他免費的)做什麼,我們可以嘗試檢查結束標籤? – rishijd 2012-04-18 12:38:10

0

如果你想在一個網址爲XHTML與W3C HTML驗證器來驗證頁面,頁面有<!DOCTYPE html>作爲它的文檔類型,那麼您必須與爲application/xhtml+xml來驗證一個XML mime類型等服務頁面。

這是一件好事。只有當你使用這種MIME類型時,瀏覽器纔會將XHTML視爲XHTML,否則它們會將其視爲HTML,並且所有您認真的XHTML都將成爲標籤湯。使用HTML5,驗證器的行爲與瀏覽器的行爲相同。

否則,您應該瞭解HTML中的「正確結束標記」。這意味着諸如關閉</p>標籤之類的東西在許多情況下可能會被忽略。

+0

非常感謝。「application/xhtml + xml 「 - 我在http://html5doctor.com/html-5-xml-xhtml-5/和http://stackoverflow.com/questions/1076897/html5-syntax-html-vs-xhtml查看了更多關於這個的內容 - 我不明白關於這個不能在IE上工作的部分 - 例如「目前在Internet Explorer中沒有渲染」) - 我們肯定需要我們的網站在IE7 +上工作,並且還需要IE6上的一些功能。在這種情況下,是我的應用程序/ xhtml + xml選項? – rishijd 2012-04-18 12:39:54

+0

@rishijd - 如果您需要在版本9之前支持IE,那麼您不能將文件作爲「application/xhtml + xml」提供給它們。一種選擇是使用內容協商。這意味着您可以使用'application/xhtml + xml'或'text/html'來提供文件,具體取決於HTTP請求頭信息,如「acceot」頭。如果「accept」頭文件包含字符串「application/xhtml + xml」,則發送文件時使用「application/xhtml + xml」內容類型和「text/html」。 – Alohci 2012-04-18 21:05:49