3

可能重复:
注释掉 HTML 文档中的样式表以支持旧浏览器

我正在阅读 Wrox 发布的 Professional ASP.NET 2.0。见下面的代码。

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

    <!--

    body {
    font-family:Verdana;
    }

    -->
    </style>
 </head>

以下几行来自书中:

包含 HTML 注释标签是因为并非所有浏览器都支持内部样式表。通常是较旧的浏览器不接受它们。在样式定义周围放置 HTML 注释可以隐藏这些定义,使其对非常旧的浏览器不可见。

现在我的问题是,评论之间的内容怎么可能只隐藏到旧浏览器而不是新浏览器?新浏览器不会受到评论的影响吗?

4

2 回答 2

5

旧的(或者更确切地说,古老的)浏览器无法识别<style>,因此它被视为任何其他未知元素,其内容被视为 HTML。评论被视为评论,因此不会呈现任何内容。

支持的浏览器<style>知道将内容视为 CSS 并忽略 HTML 注释(根据规范)。

于 2012-11-04T15:08:05.333 回答
2

这个想法是,这是一种内置于新浏览器支持内联样式表的技术。这只是在内部样式表中忽略 html 注释分隔符 (<!---->) 的规则,因此此方法将起作用。(如果我没记错的话,它们只会在样式表的开头和结尾被忽略,但我对此并不完全确定。)

在较旧的浏览器中,它不知道如何处理脚本标签,因此它会将所有内容直接放在页面上。但是,其中除了评论之外什么都没有,因此用户将看不到任何内容。如果您确实想在 CSS 中使用注释,请使用 CSS 注释样式(/**/)。

另请注意,这种方法适用于非常古老(或古老)的浏览器。如今,这种技术不再很普遍,我敢说它也不再需要了(旧的浏览器可能无论如何都无法正确显示您的页面)。

于 2012-11-04T15:05:30.257 回答