2011-07-08 99 views
5

我注意到,儘管遵循大多數現代網頁設計慣例,許多網站都是在XHTML Transitional下設計的。我認爲過渡意味着將舊標記移植到臨時解決方案,這可能需要過多的努力來重新設計。寫XHTML嚴格標記值得嗎?

很多網站甚至在Transitional下都沒有正確驗證。我非常努力地堅持嚴格的標準,認爲不恰當的標記會導致調試時出現很多困難,因爲某些東西不起作用。但是,編寫100%有效代碼的工作量很大。

我很好奇是否值得付出努力來學習和編寫符合XHTML標準的標記。

編輯:如果是這樣,爲什麼不更多的人這樣做?我偶然發現一個合適的XHTML嚴格網頁似乎很少見。

回答

4

簡答:沒有。

我從來沒有發現嚴格的XHTML值得努力。

它的第一個問題是它棄用了一些實際有用的HTML特性,並且沒有好的替代解決方案。如果您需要與舊瀏覽器(當然每個人都這樣做)向後兼容,這是一個特殊問題。 Transisional規範並沒有否定這些功能,這就是爲什麼人們使用它而不是嚴格的。是不提倡使用的

特點包括<center>標籤(CSS替代品尚未跨瀏覽器的時候兼容)和target屬性爲<a>標籤(它允許你打開一個新的窗口,標籤或幀的鏈接;還沒有其他方法可以做到這一點,沒有人停止使用它,並且HTML5重新引入了它)。沿着同樣的路線還有其他許多特徵,但這已經很長時間了,我不記得它們全部。其次,它的設計目的是在瀏覽器失敗,如果你的標記甚至有最小的錯誤。這聽起來理論上很好,但總是註定要失敗。這基本上是規範編寫者採取的一個反動步驟,反對劣質HTML代碼的擴散(這在某種程度上仍然是Web的主要問題)。但他們忘記了設計客戶端 - 服務器協議的關鍵規則,即服務器應嚴格發送內容,但客戶端應該是寬鬆的。所有成功的客戶端 - 服務器協議遵循此規則。

這是好事,關心您的標記是有效的 - 事實上,這是非常重要的,不管你在寫什麼(X)HTML方言的 - 但你應該檢查在開發階段是,不讓最終用戶的瀏覽器爲你做驗證。如果你是一位優秀的開發人員,你應該知道你的代碼在用戶靠近之前是好的。事實上,如果這會導致您的網站在最終用戶面前完全崩潰,那麼這是一場災難。對於破碎的HTML,即使破損嚴重,用戶通常可以瀏覽並充分閱讀該網站,以便能夠找到聯繫人詳細信息以供您報告錯誤。如果瀏覽器遵守嚴格的XHTML文檔類型,那麼一個微小的標記錯誤可能會導致您的網站只顯示標準瀏覽器錯誤消息。這是非常糟糕的用戶體驗。

最後,它沒有提供任何新功能。它做的一件事是哪些舊的HTML版本沒有做的是允許文檔被解析爲一個XML文檔。這對驗證您的文檔沒有任何錯誤很有幫助,但並沒有真正實現其他功能。您還可以使用名稱空間將其他XML格式嵌入到您的文檔中,但這很複雜,並沒有真正實現新功能。

XHTML一直是一個理想主義的夢想,現在HTML5已經成爲新興事物,它現在正在消失。

+0

您能舉幾個有用的棄用功能的例子嗎?在我看來,所有功能都具有良好的符合XHTML的解決方案。 – tskuzzy

+1

@tskuzzy - 好的,我已經編輯了答案,其中包含兩個功能,這些功能阻止了我在當天嚴格限制XHTML的使用。 – Spudley

1

我已經寫了幾年的嚴格標記和有,我可以看到沒有明顯的好處號。

我寧願使用HTML5 <!DOCTYPE html>,因爲它在IE中更乾淨並且性能下降。

4

我曾經寫嚴格的所有XHTML,但那是因爲我關心我的標記語義上是正確的。不幸的是,大多數Web開發人員(a)不關心語義上正確的代碼,或者(b)不知道甚至存在問題。

真的,如果你想在Strict中編寫,只需編寫你的頁面,然後通過驗證器運行它。它會告訴你什麼是錯的,你需要解決什麼問題。你會學習你應該做什麼或不該做什麼事情。看看official spec可以幫助很大。

另一方面,我也建議轉移到HTML5。 HTML5不具有「嚴格」和「過渡」等類型。如果你想寫更嚴格的規則,你可以。如果你想按輸家規則寫,你可以。我也覺得它周圍更乾淨,我喜歡寫HTML5比XHTML更多。再次,通過驗證器運行你的網站會讓你知道你所做的事情是不正確的。至於更多的人開始做什麼,我會說對HTML5有很大的推動力。不僅因爲這是一件新而酷的事情,而且因爲它解決了XHTML和HTML4中存在的許多麻煩和煩惱。

所以,我的建議是朝着那個方向前進。

+0

我絕對同意編寫有效的標記很重要,但XHTML Strict從來不是解決方案,因爲它將驗證放在用戶面前,如果它甚至有點錯誤,則會顯示可怕的錯誤消息:該類型的測試應該是在它靠近用戶的任何地方之前就已經完成了。 – Spudley

0

我會說是(ish)。

通常選擇嚴格的版本將會引用你應該遵循的標準。即xhtml strict中的不贊成使用的屬性(但允許過渡),不會出現在標準的更高版本中。

現在我的經驗法則是有點破,從xhmtl到html5的運動。由於html5沒有嚴格的版本,但我會說html5(甚至xhtml5),而不是xhtml嚴格。

但我會說一般情況下試圖堅持最嚴格的任何版本,讓你專注於爲下一個版本準備的最佳實踐,即事情不會倒退(理論上)。