是否可以根据所使用的浏览器选择性地应用CSS?

时间:2010-10-29 13:19:58

标签: css

我在蓝色背景上有一个白色的场景。我没有在字段集中应用任何填充,但看起来所有其他浏览器都应用了5px填充:除了Internet Explorer 。如果我应用5px,那么IE看起来很好,但其余的浏览器有太多的填充。好像他们加起来了。

这是最明显的问题,但还有一些其他不太明显的问题,其中只有Internet Explorer的行为与其他浏览器的行为不同。那么,有没有一种方法可以有选择地应用 CSS ?例如, if(IE然后应用5px填充)

感谢您的帮助

8 个答案:

答案 0 :(得分:2)

像这样编写你的身体标签:

<!--[if IE]> <body class="ie"> <![endif]-->
<!--[if !IE]><!--><body><!--<![endif]-->

然后用

编写您的特定ie规则
.ie fieldset { ... }

(IE上没有额外的请求来处理特定的错误修正,没有明星黑客或其他让你的css无效的技巧)

答案 1 :(得分:2)

<!--[if lt IE 7 ]> <body class="ie6"> <![endif]-->
<!--[if IE 7 ]>    <body class="ie7"> <![endif]-->
<!--[if IE 8 ]>    <body class="ie8"> <![endif]-->
<!--[if IE 9 ]>    <body class="ie9"> <![endif]-->
<!--[if (gt IE 9)|!(IE)]><!--> <body> <!--<![endif]-->

以上针对IE的特定实例,因为错误可能是特定于版本的。

例如,在为IE6和IE7创建规则时使用

body.ie6 wrapper{background-color:#0000ff;}
body.ie7 wrapper{background-color:#00ff00;}

答案 2 :(得分:1)

IE'hacks',例如用*让IE使用该样式来引导语句,但没有别的。

http://www.webdevout.net/css-hacks#unrecommended-asterisk_prefix

还有条件 - 但这些必须是HTML,而不是CSS。

http://www.quirksmode.org/css/condcom.html

答案 3 :(得分:1)

你需要使用某种CSS“hack”来定位特定的浏览器。有关您可以使用的不同选项的详细说明,请参阅this guide

  

有时没有合理的方法可以在所有主流Web浏览器中实现所需的布局,而无需对某些布局引擎使用某些特殊的例外规则。黑客必然会导致潜在的并发症,应该尽可能避免,但是当情况需要使用黑客时,最好知道你的选择是什么,并适当地权衡后果。

答案 4 :(得分:1)

您可以使用条件样式表...

<!--[if IE]>
    <link rel="stylesheet" type="text/css" href="iespecificstyles.css" />
<![endif]-->

这里有一篇很好的文章: IE Conditional Stylesheets

答案 5 :(得分:1)

我建议不要使用CSS hacks(例如明星黑客)来支持更好的解决方案IE Conditional Comments。您可以为IE创建单独的样式表,甚至是IE的每个主要版本,并将您的规则放在单独的样式表中。

答案 6 :(得分:1)

根据浏览器的不同,有许多方法可以有条件地执行CSS。如果有问题的浏览器是IE,那么我建议conditional comments是最佳解决方案。

但是,如果您遇到填充问题,很可能您只是遇到使用错误doctype的问题(或者更可能根本不使用doctype)。

如果是这种情况,您应该在HTML的顶部添加doctype。这将解决许多奇怪的跨浏览器布局问题。

有一些非常复杂的文档类型可用于各种版本的HTML和XHTML,但最好使用的文档类型是最简单的,即新的HTML5文档类型:

<!DOCTYPE html>

这适用于所有浏览器(即使那些实际上还不支持HTML5的浏览器)。

希望有所帮助。

答案 7 :(得分:1)

好吧,似乎每个人都说条件评论包含第二个样式表,需要IE hacks,从而控制一切,在验证器面前“免费”......

我不会有所不同。我在我的项目中使用相同的方法。但对于这个特定的问题,我认为你的解决方案可以在CSS内部。

名为box-sizing的属性。阅读它并检查它是否解决了您的问题。 http://www.quirksmode.org/css/box.html