2009-10-29 111 views
1

我是HTML新手,但對XML有着悠久的歷史。它讓我覺得奇怪,HTML風格的元素看起來像這樣。爲什麼HTML樣式元素內容不是標準的XML?

<style type="text/css"> 
    .style1 { width: 250px; } 
    .style2 { width: 20px; } 
</style> 

我原以爲可以用更友好的XML格式捕獲相同的信息。例如也許這

<style type="text/css"> 
    <style1 width="250px"/> 
    <style2 width="25px"/> 
</style> 

在我看來,後者將被解析的XML解析器,而前者將需要自定義解析代碼。這似乎很不典型,我想知道是否有一個很好的理由。

感謝,

邁克爾

回答

2

主要是因爲它早於XML。見7.2.3.3哈肯·維姆·萊的論文: http://people.opera.com/howcome/2006/phd/#h-275

+0

我花了一些時間回顧李先生的論文。有一天我希望有時間閱讀它。除CSS之外,還有很多其他功能。 –

+0

我上週末的天氣很差,有機會閱讀李先生的論文。我有很多機會閱讀類似的論文。這一款脫穎而出是我遇到的更好的產品之一。這是對樣式表主題的很好介紹。如果你遇到這種情況,那麼值得花時間。 謝謝Ja –

2

CSS是一種不同的語言。 XHTML只是允許它嵌入,因爲它是內容。就像JavaScript在XML文檔中一樣。

更不用說使用XML會導致DTD問題,並且在CSS具有簡單性時會非常冗長。

下面是CSS的一些歷史:http://en.wikipedia.org/wiki/Cascading_Style_Sheets#History

1

因爲CSS語法是更清潔,簡潔,更具表現力。特別是在單一規則中有多個選擇器在基於XML的語言中會非常繁瑣。 (它可以放在一個屬性上,但這只是將現有CSS語法的一大部分嵌入到XML標記屬性或值中的一種醜陋手段)。

+3

下一個你要告訴我,XSLT是一個醜陋的爛攤子 –

+0

他在談論它必須是這樣'<規則選擇=」的東西。 something2「/>'我覺得這很醜陋。 –

+0

將XSLT描述爲「醜陋的混亂」將如此慷慨和慈善,以至於比爾蓋茨和沃倫巴菲特放棄他們的全部財富在非洲餵養飢餓的孩子會讓他們看起來像Ebenezer Scrooge。 XSLT讓我向往COBOL。我曾經在90年代後期使用XSLT,甚至在最終規範被採納之前,多年來已經用它構建了一些相當大的應用程序,這些經驗讓我終生難忘,並且不會碰它因爲害怕失去我已經離開的小智慧。 tl; dr XSLT會給你做惡夢。 – uriel

0

在這種情況下

<style type="text/css"> 
    .style1 { width: 250px; } 
    .style2 { width: 20px; } 
</style> 

的CSS樣式的元素風格的內容。 CSS本身不是HTML

0

正如其他人所說,CSS是一種完全不同的語言。它不符合XML語法。 CSS解析器不是XML解析器。要正確地將Javascript和CSS嵌入到XHTML文檔中,請將它們放在CDATA部分中。 CSS也可以包含在XML註釋中,因爲它通常不具有像JavaScript那樣的不符合XML的字符。

這是關於這個話題的好文章。 https://developer.mozilla.org/en/Properly_Using_CSS_and_JavaScript_in_XHTML_Documents

相關問題