2012-11-04 115 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或具有太多表格。几乎所有的浏览器都有简洁的网站,并且它们看起来不太好看的浏览器通常看起来不太好。 –