我在蓝色背景上有一个白色的场景。我没有在字段集中应用任何填充,但看起来所有其他浏览器都应用了5px填充:除了Internet Explorer 。如果我应用5px,那么IE看起来很好,但其余的浏览器有太多的填充。好像他们加起来了。
这是最明显的问题,但还有一些其他不太明显的问题,其中只有Internet Explorer的行为与其他浏览器的行为不同。那么,有没有一种方法可以有选择地应用 CSS ?例如, if(IE然后应用5px填充)。
感谢您的帮助
答案 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。
答案 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