2012-11-04 142 views
3

可能重複:
Commenting out stylesheets in HTML documents to support older browsersHTML註釋標籤內部樣式表

我讀的專業ASP.NET 2.0的Wrox的出版。見下面的代碼。

<head> 
    <style type="text/css"> 

    <!-- 

    body { 
    font-family:Verdana; 
    } 

    --> 
    </style> 
</head> 

以下是從書:

HTML註釋標記包含因爲不是所有的瀏覽器都支持內部stylesheets.It一般是舊版本瀏覽器不接受他們。在樣式定義周圍放置HTML註釋會將這些定義從很老的瀏覽器中隱藏起來。

現在我的問題是,評論之間的內容如何隱藏到舊瀏覽器而不是新瀏覽器?新瀏覽器是否不受評論影響?

+0

這本書已經7歲了,而且ASP.NET的版本高達4.5。我今天不認爲它是一個特別有用的資源。 – Quentin

回答

4

舊的(或更古老的)瀏覽器不會識別<style>,因此它會像其他未知元素一樣處理,並且其內容被視爲HTML。該評論被視爲評論,所以沒有呈現。

支持<style>的瀏覽器知道將內容視爲CSS並忽略HTML註釋(根據the specification)。

+0

:如果評論被視爲評論,那麼評論之間的內容如何被瀏覽器看到 –

+0

@RindindBagale - 只有在任何評論可見的情況下,它們纔可見。它們沒有被渲染,這是重點。 – Quentin

2

這個想法是,這是一種技術,內置到新的瀏覽器支持內聯樣式表的方式。在內部樣式表中,HTML註釋分隔符(<!---->)被忽略,所以這個方法可以工作。 (如果我沒有弄錯,他們只會在樣式表的開始和結尾被忽略,但我不完全確定)

在舊版瀏覽器中,它不知道如何處理腳本標記,所以它會將所有內容直接放在頁面上。但是,它沒有任何內容,只是一個評論,所以用戶不會看到任何東西。如果您想在CSS中使用註釋,請使用CSS註釋樣式(/**/)。

也請注意,這是非常古老的(或古老的)瀏覽器的方法。這種技術現在不再那麼常見了,我敢說它不再是必需的了(老式的瀏覽器可能無法正確顯示您的頁面)。

+0

「舊的瀏覽器無論如何都無法正確顯示您的頁面。」這不一定是真的(特別是如果頁面簡單或設計時考慮到向後兼容性)。我的網站在Netscape 1中幾乎正確。 –

+0

@ JustinC.B。在大多數情況下,確保工作並不值得。畢竟,是否真的有人瘋狂地使用Netscape 1訪問您的頁面?如果是這樣,他們是否只爲您的網站切換瀏覽器,因爲許多其他網站不在該瀏覽器中工作。我確實在句子中增加了一個「可能」,以表明這可能不適用於所有人。 – Jasper

+0

通常,在Netscape 1中無法正常工作的網站是由於複雜的樣式,JavaScript或具有太多表格。幾乎所有的瀏覽器都有簡潔的網站,並且它們看起來不太好看的瀏覽器通常看起來不太好。 –