<style type="text/css">
<!--
......
-->
</style>
在樣式表的開頭和結尾會自動添加一套html注釋標記:<!--和-->。如果以為這個跟html的注釋標記是一樣,用這個寫注釋,會導致樣式表定義失效。下面是運行效果對比:
當<!--后面加上字之后,下面的內容就全被忽略了,直到</style>結束。
這是一個很容易被忽視的低級錯誤。原因很簡單,CSS的注釋語法是:
/ * ...... * /
而不是:
<!--
......
-->
后者是正兒八經的html語法。兩者不是一回事兒。
那么,為什么自動生成的style中要有這么一對html的注釋標記呢?
這是為了兼容老版本的瀏覽器。老的瀏覽器不支持style,所以遇到style時,會把style樣式單的內容顯示在頁面上。但是老版本的瀏覽器認識html的注釋標記,所以加上標記后,這部分內容就會被當作注釋忽略掉,樣式單也就不會在頁面上顯示了。
而支持style的瀏覽器,則會忽視<!--標記,從而正常使用樣式單。大概這也是為啥樣式表中的注釋要換成標記的原因之一吧。
上例的html源代碼(簡化版):
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>無標題文檔</title>
<style type="text/css">
<!--
#PageBox {
......
}
-->
<!--這里加上字
#PageBox2 {
......
}
-->
</style>
</head>
<body>
<div id="PageBox">
......
</div>
<p>(為了方便瀏覽,這里加了很多<p>&nbsp;</p>,</p>
<p>不然第二個<div>的內容就要和第一個貼在一起了)</p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<div id="PageBox2">
......
</div>
</body>
</html>