Css 在HTML中使用条件注释

Css 在HTML中使用条件注释,css,xhtml,Css,Xhtml,我对网络开发和学习一直比较陌生。我最近在查看不同网站的源代码时遇到了“条件评论”。我想我现在了解了它们的功能,但不确定何时使用它们 我看到它们主要用于在IE中实现不同的样式表,我想知道这是否是一个好的实践 在这种情况下,如果答案是“是”。那么,在开发一个站点时,是否经常使用两个单独的样式表来修复bug,例如为IE创建一个样式表,为Firefox、Opera等创建一个样式表 提前感谢。据我所知,条件评论仅受IE支持,在不支持它们的浏览器中,它们会优雅地降级(因为它们看起来像普通评论)。普遍的共识是

我对网络开发和学习一直比较陌生。我最近在查看不同网站的源代码时遇到了“条件评论”。我想我现在了解了它们的功能,但不确定何时使用它们

我看到它们主要用于在IE中实现不同的样式表,我想知道这是否是一个好的实践

在这种情况下,如果答案是“是”。那么,在开发一个站点时,是否经常使用两个单独的样式表来修复bug,例如为IE创建一个样式表,为Firefox、Opera等创建一个样式表


提前感谢。

据我所知,条件评论仅受IE支持,在不支持它们的浏览器中,它们会优雅地降级(因为它们看起来像普通评论)。普遍的共识是,如果你使用非标准浏览器功能来对抗另一个非标准浏览器“功能”(即IE中对CSS的蹩脚支持),那么使用非标准浏览器功能是可以的。因此,你会发现这是一个非常常见的调整CSS的解决方案。

有些人还使用注释来帮助概述页面的某些区域,如页脚、页眉或主要内容(通常在模板中)

但是,如果您使用的是DIV和CSS(听起来像是这样),那么您应该能够通过DIV id和CSS样式来判断内容是什么,或者HTML的哪个区域。记住使用清晰的名字,不要为了打字方便而缩写


如果这对你来说是一个问题,那么智能感知是一件很棒的事情,它可以帮助我们解决类似的问题。如果不是,那么CTRL+C和CTRL+V可能是下一个最好的选择:)

我使用了条件评论来检测我的网站的访问者是否使用IE6或更低版本。如果是这样,我将加载,这克服了这些旧浏览器中的一些错误。还有一个用于模拟IE8支持的脚本。

Internet Explorer(版本6)的特性使它能够使某些样式表与IE很好地工作,而有些样式表则不能。对于那些不使用条件注释的用户,您可以使用条件注释来生成仅为IE显示的CSS代码。我必须使用它,因为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中导航。

这是一个很好的实践!有很多例子和条件注释的组合,值得一读。该页还指出:

有条件的注释使开发人员可以轻松地利用Microsoft Internet Explorer 5及更高版本提供的增强功能,同时编写在功能较差的浏览器中正常降级或在Windows Internet Explorer以外的浏览器中正确显示的页面。条件注释是区分特定版本Internet Explorer的级联样式表(CSS)规则的首选方法。 现在的Internet Explorer是功能最差的浏览器,因此您最有可能使用条件注释来实现完全相反的目的,即利用所有其他浏览器提供的增强功能,同时在Microsoft Internet Explorer中编写优雅降级的页面

您可以使用条件注释修复不受支持的CSS样式,或从Internet Explorer隐藏代码,如下所示:

<!--[if !IE]>-->
<script src="IE_will_never_see_this.js" type="text/javascript" charset="utf-8" ></script>
<!--<![endif]-->


谢谢您的支持,John。我已经在代码中使用注释来区分某些部分。然而,在这个问题上,我更关注的是使用条件评论来将某些事情指向IE。对不起,如果我在原始问题中没有明确说明这一点。啊,是的,“条件”这个词确实给出了它,不是吗:)谢谢Gortok。如果我只想添加一个,如果你把普通样式放在后面,如果你把普通样式放在条件之前,那么条件中的样式会覆盖它们。Pim是这么说的。在条件注释之前,我在一个单独的文件中列出了我的常规样式表。谢谢,这应该会有所帮助。