2016-11-08 47 views
2

我是我公司的一名應用程序開發人員,直到最近才真正關注HTML,在休息期間自學了一段JavaScript和HTML。XHTML - HTML不是HTML格式嗎?

不斷提出的一件事是HTML和XHTML之間的差異,特別是有關HTML5的文章。

令我困惑的概念是我認爲HTML已經是XML格式。所以當有人開始說XHTML是使用XML的HTML時,這讓我感到困惑。

有HTML和XHTML之間幾乎沒有差別的列在http://www.w3schools.com/html/html_xhtml.asp

  • 的XHTML <!DOCTYPE>添加到每一頁
  • 的第一行添加一個xmlns屬性,在每個頁面
  • 的html元素將所有元素名稱更改爲小寫
  • 關閉所有空元素
  • 將所有屬性名稱更改爲小寫
  • 引用所有屬性值

但除了第一點和第二點,其他人是也可以應用到HTML只是更嚴格的語法規則。此外,我認爲只要遵循其他要點,就可以在HTML文檔上使用XML工具。

那麼區分兩種不同標準有什麼意義呢?

編輯:我想HTML5,區別更不明顯(或接近有點包容性)。

+0

*「我認爲只要遵循其餘的要點,就可以在HTML文檔上使用XML工具。」 - 是的,但事情是非常非常少的HTML文檔遵循其餘的觀點。更準確地說,HTML和XML是[密切相關](https://en.wikipedia.org/wiki/Standard_Generalized_Markup_Language),但與HTML相比,XML對格式化規則非常嚴格。無論如何,XHTML現在實際上已經死了,所以我不會太在意它。 – JJJ

回答

2

tl; dr:
不,HTML還不是XML格式。

較長的答案:

HTML如下比XML不同規則。當然,總體而言,XML的規則有點嚴格,但這不僅僅是重點。關鍵是您可以擁有有效的HTML文檔,但與XML無關。例如:

<title>?</title> 
<p>Hello 

這個甚至沒有根元素。也就是說,它具有隱形的開始和結束標籤。或者,像這樣的一條線

<script src="script.js"/> 

是HTML中的no-no。毀滅性的結果!但它是格式良好的XML,您可以在XHTML中執行此操作。
所以不,HTML幾乎不是XHTML。

我做了一個頁面,回頭看HMTL和XHTML之間的差異,這比W3School的一個here更完整。如果您想研究差異,請使用該差異。

例如,W3School上的重點列表是一個開始,但它並不完整。您還需要

  • 讓所有的開始和結束標記可見,即使它們是可選根據HTML標準
  • 記得<script><style>塊用相同的解析器,而不是純文本解析器解析。如果你在樣式塊中有類似HTML的東西,例如p:after {content:'</style>';},那就錯了!同上用轉義&跡象
  • 意識到,結構像<table><tr><td></td></tr></table>結果在HTML和XHTML
  • 不使用<a>元素與name屬性爲錨

哦,不同的DOM樹至於W3Schools的第一個要點,瀏覽器不需要DOCTYPE聲明來在標準模式下顯示文檔。在一個真正的XHTML文檔中,您可以將其保留,並且顯示效果沒有差異。
您唯一需要的時間是在文檔中命名實體時,如&eacute;,它們需要完整的DOCTYPE才能工作。 (一個完整的DOCTYPE,包括DTD部分,不是簡短的HTML5)