是否可以在使用内联CSS时创建一个盒子模型hack?
例如:
<div id="blah" style="padding: 5px; margin: 5px; width: 30px; /*IE5-6 Equivalent here*/">
谢谢!
答案 0 :(得分:12)
您也可以在内联样式中使用“前缀”黑客:
<div style="*background:red"></div>
请确保将IE hacks放在style属性的末尾。但我认为应尽可能避免使用内联样式。有条件的评论和Internet Explorer的单独CSS文件似乎是处理此类问题的最佳方式。
答案 1 :(得分:10)
我会去外面 - 在该元素上打一个班级,或使用你拥有的ID,并在外部处理样式。
我也同意我之前的条件评论答案。
说:作为绝对最后的手段,您可以使用以下样式黑客来定位&lt; = IE6,甚至是IE7。如果/如果他们修复IE8来打败你的黑客,就会遇到麻烦。
.foo {
padding: 5px;
^padding: 4px; /* this targets all IE, including 7. It must go first, or it overrides the following hack */
_padding: 3px; /* this targets >= IE6 */
width: 30px;
}
祝你好运。
答案 2 :(得分:3)
没有争论或反对CSS黑客,个人如果我需要这样做,我宁愿使用条件评论:
<!--[if lt IE 7]>
<style>
#blah {
padding: 5px;
margin: 5px;
width: 30px;
}
</style>
<![endif]-->
答案 3 :(得分:0)
最合适的答案是不。 (编辑:要明确,我的意思是不要内联,我不是说不使用CSS黑客。)
编辑:这不起作用,IE忽略条件注释。留下这里的答案不是一个混蛋。
下一个最恰当的答案是条件评论:
<div id="blah" style="padding: 5px; margin: 5px; width: 30px; <!--[if lte IE 6]> ... <![endif]-->">
答案 4 :(得分:0)
请记住,IE 6需要在怪癖模式下>>的盒子模型,而在标准模式下不需要 。 IE 5和IE 5.5一直需要BMH。
因此,如果您处于标准模式,则需要使用类似the original voice-family
hack(针对IE 5.X和不 IE 6)的内容。如果你处于怪癖模式,任何旧的IE&lt; = 6 hack都可以。
(您的问题内容向我建议您的页面以怪癖模式呈现。)
答案 5 :(得分:0)
是的,就像上面的每个人一样,如果你可以避免在线做它!!但是如果你真的需要内联,那么解析器过滤器可能是你最好的选择,这些是你可以在属性上使用的某些字符,例如ie6中的下划线黑客
print("code sample");
style="position:relative;padding:5px; _position:absolute; _padding:10px;"
ie6仍然会得到强调的风格,其他人都会忽略它们!
还有使用!important而不是下划线。
有一个游戏,看看会发生什么,但再次像上面一样,尽量避免像瘟疫:)
答案 6 :(得分:0)
最好的解决方案是在标准模式而不是Quirks模式下工作....这样就可以立即消除对大多数盒子模型的攻击。</ p>
除此之外,使用IE特定样式表的条件注释更清晰,更易于维护。对于过去几年中大多数顶尖设计师而言,这种方法已经足够了......除非你的网站有一些特定内容需要全部内联,我建议退一步看看根本问题,而不是如何你可以在它们出现时修补这些小症状。alt text http://sonicloft.net/im/52