2009-01-05 48 views
2

我对Web开发和学习始终都比较陌生。我最近在查看不同网站的源代码时遇到了“条件评论”。我想我现在明白他们做了什么,但我不确定何时使用它们。在HTML中使用条件注释

我看到他们主要用于实现不同的样式表,当涉及到IE浏览器,并想知道这是否是好的做法?

在这种情况下,如果答案是'是'。然后,在开发一个站点时,使用两个独立的样式表来修复错误是“常见的地方”,例如为IE创建一个样式表,以及为Firefox,Opera等创建一个样式表?

在此先感谢。

回答

5

只有IE支持条件注释,据我所知,他们在不支持它们的浏览器中正常降级(因为它们看起来像普通注释)。普遍的共识是,如果您使用非标准浏览器功能来对付另一种非标准浏览器“功能”(即对IE中CSS的蹩脚支持),则可以使用非标准浏览器功能。所以你会发现这是一个调整CSS的非常常见的解决方案。

0

有些人还使用评论来帮助描述页面的某些区域,如页脚,标题或主要内容(通常在模板中)。

但是,如果您使用div和CSS(它听起来像您),您应该能够通过DIV ID和CSS样式告诉您内容是什么或HTML的哪个区域。请记住使用明确的名称,并尽量不要为了简化输入而缩写它们。

如果这对你来说是一个问题,那么Intellisense是一件很棒的事情,可以帮助我们解决这个问题。如果没有,那么CTRL + C和CTRL + V可能是下一个最好的东西:)

+0

感谢您的输入约翰。我已经在我的代码中使用了注释来区分特定的部分。然而,对于这个问题,我更关注使用条件注释来指导某些事情。对不起,如果我没有在原来的问题中说清楚。 – Ronnie 2009-01-05 22:44:43

+0

嗯,是的“有条件”这个词确实给了它不是:) – 2009-01-05 22:55:21

2

我已经使用条件注释来检测访问者是否使用IE6或更低版本。如果是这种情况,我加载IE7.js script,它克服了这些旧浏览器中的一些错误。还有一个模拟IE8支持的脚本。

4

Internet Explorer(版本6 especially)的性质使得一些样式表在IE中可以很好地工作,有些样式表不会。对于那些不这样做的用户,您可以使用条件注释来使CSS代码仅显示在IE中。我必须使用它,因为Internet Explorer(mis)处理CSS下拉菜单的方式。

为了使我正在处理的网站正确渲染下拉菜单的hover功能,我必须实现crosshover.htc文件。下面是我使用的代码:

 <!--[if IE]> 
<style type="text/css" media="screen"> 
#menu ul li {float: left; width: 100%;} 
</style> 
<![endif]--> 
<!--[if lt IE 7]> 
<style type="text/css" media="screen"> 
body { 
behavior: url(http://www.stannscatholicschool.com/csshover.htc); 
font-size: 100%; 
} 
#menu ul li {float: left; width: 100%;} 
#menu ul li a {height: 1%;} 

#menu a, #menu h2 { 
font: 100% verdana, tahoma, helvetica, arial, sans-serif; 
} 

</style> 
<![endif]--> 

如果我不这样做,在下拉菜单中分裂开来,不能在Internet Explorer中导航6.

+0