
儘管XHTML已過時,但其對HTML編碼的影響仍然存在。許多開發人員在編寫HTML時在不知不覺中遵守XHTML實踐。本文闡明了兩種方法之間的區別。
html,xhtml和向後移動
進化很簡單:HTML在1990年代主導了2000年代的XHTML,我們在2010年代返回了HTML。這反映在規格的發行日期中:HTML 1(1992),HTML 2.0(1995),HTML 3.2(1997),HTML 4.01(1999); XHTML 1.0(2000),XHTML 1.1(2001); HTML5(2007)。
XHTML的崛起與對XML的統治地位的普遍信念相吻合。這導致採用XHTML風格的HTML編碼。
XHTML的陰影
XHTML 1.0的“與HTML 4的差異”部分詳細介紹了其關鍵區別:
-
形成良好的文件: XHTML需要形成良好的文件。
-
小寫元素和屬性名稱:元素和屬性名稱必須是小寫。
-
所需的結束標籤:非空元素需要最終標籤。
-
屬性值的強制引用:必須始終引用屬性值。
-
無屬性最小化:不支持屬性最小化。
-
封閉的空元素:空元素需要關閉標籤。
-
符合XML的空間處理:屬性值中的Whitespace遵循XML規則。
-
腳本和样式的CDATA部分:腳本和样式元素需要CDATA部分。
-
無SGML排除:不允許使用SGML排除。
-
id
屬性偏好:具有id
和name
屬性的元素應主要使用id
。
-
案例敏感屬性:具有預定義值集的屬性對病例敏感。
-
小寫十六進制實體參考:十六進制實體參考必須是小寫。
在不知不覺中,許多開發人員仍然遵循大多數規則,即使XHTML已經過時。有些人甚至對HTML感到“最佳實踐”。
擁抱HTML的真正精神
相反,讓我們否定與XHTML施加的規則(不再與SGML相關的方面,因為HTML不再依賴SGML):
-
文檔形式良好:文檔可能沒有很好。
-
案例靈敏度:元素和屬性名稱可以是上層或小寫。
-
可選的結束標籤:非空元素的端標籤是可選的。
-
可選的報價:屬性值可能不會引用。
-
屬性最小化:允許屬性最小化。
-
未封閉的空元素:空元素不需要關閉標籤。
-
空間處理:屬性值中的空格並不嚴格符合XML符合性。
- CDATA部分:腳本和样式的CDATA部分是可選的。
-
id
/ name
屬性: id
和name
屬性的使用不受限制。
-
屬性的情況敏感性:具有預定義值集的屬性不是對病例敏感的。
-
十六進制實體參考:十六進制實體參考的案例不受限制。
簡化,專注於最相關的方面:
-
可選標籤:啟動和結束標籤是可選的。
-
未封閉的空元素:空元素不需要關閉標籤。
-
名稱的情況:元素和屬性名稱可以是上層或小寫。
-
可選的報價:屬性值可能不會引用。
-
屬性最小化:支持屬性最小化。
儘管HTML的彈性允許無效的代碼,但最佳實踐強調有效,形成良好的HTML。因此,“文檔可能不是很好的”點被忽略。 HTML方式的本質變為:
-
可選標籤:啟動和結束標籤並不總是需要。
-
未封閉的空元素:無需關閉空元素。
-
案例不敏感的名稱:元素和屬性名稱可以是小寫或大寫。
-
可選引號:屬性值可能並不總是引用。
-
屬性最小化:支持屬性最小化。
實際例子
XHTML與HTML:
XHTML:
<p>示例段落。</p>
關聯
html:
<p>示例段落。
</p>
關聯
HTML允許大寫標籤和屬性,未引用的屬性值(安全時)以及最小化屬性。
現代HTML方法
現代的HTML方法應優先考慮:
-
有效和語義HTML:驗證您的HTML並確保語義正確性。
-
一致的編碼樣式:為情況(上或小寫)選擇一致的樣式和屬性引用。
-
極簡主義:最少使用HTML,依靠CSS和JavaScript進行表現和行為。在適當的情況下,利用可選標籤,空元素閉合,默認屬性值和屬性最小化。
諸如html-minifier
之類的工具可以幫助優化HTML。重新發現HTML的真實本質,與XML的影響無關,是現代網絡開發的關鍵。
以上是寫html,html方式(不是xhtml方式)的詳細內容。更多資訊請關注PHP中文網其他相關文章!