任何人都可以推荐通过CSS破解IE8样式的最佳方法,我最近一直在将IE8渲染为IE7轻松 - 但是想知道是否最好添加IE8 hacks?
答案 0 :(得分:10)
你应该改变你的方法。首先,您的网站在现代浏览器(如Firefox,Chrome,Opera,IE 9)中应该看起来不错,然后您就可以开始担心其他浏览器。
正如其他人所说,有条件的评论可以成为你的朋友。
首先,您应该开发CSS以在现代浏览器中看起来很好。然后检查IE8,看看你遇到了什么问题。如果需要,请包含特定于IE的样式表。之后,您可以检查IE7,然后检查IE6是否支持,并添加更多修复程序。
一个例子:
<link rel="stylesheet" href="normal.css" type="text/css" />
<!--[if lt IE 9]><link rel="stylesheet" type="text/css" href="ie8.css"><![endif]-->
<!--[if lt IE 8]><link rel="stylesheet" type="text/css" href="ie7.css"><![endif]-->
在这种情况下,您包含适用于现代浏览器的normal.css
。您发现了一些奇怪的IE8问题,因此在ie8.css
中您可以解决问题。您不必在此包含所有选择器,只需要包含需要修复的选择器(IE 8及更低版本将覆盖这些值)。之后,如果IE7中仍有一些奇怪的东西,您可以添加ie7.css
并修复它们,依此类推。
请参阅其他人提供给您的链接,以获取有关条件评论用法的更多信息。
最后: making IE8 render as IE7 for ease
永远不是一个好主意,应该避免。 IE7已经过去了(在IT世界中,IE8应该远远超过......),为现在和未来发展,之后你可以关心那些仍然坚持旧技术的人(基于您的受众和商业计划。)
答案 1 :(得分:5)
答案 2 :(得分:5)
在发布其他答案时,您可以使用条件注释,但这会在用户使用IE8时添加一个HTTP请求。 您可以在css文件中使用\ 0 hack
img{
width:200px;//other broswers
width:100px\0;//only IE8
}
答案 3 :(得分:2)
你能解释一下你想要的吗?
通常,IE8与标准兼容,因此只需确保您的HTML文档处于标准模式,并为IE8提供与任何其他浏览器相同的样式表。
如果IE正在运行,那么最好的解决方案是使用Conditional Comments为IE提供单独的样式表。
答案 4 :(得分:0)
使用ie7-js Javascript库,这有助于使旧的IE版本更像正确的浏览器,处理HTML和CSS。然后,正如其他人所建议的那样,以符合标准的方式编写代码,这些代码与最新版本的Chrome,Firefox,Opera等表现良好。
答案 5 :(得分:0)
我一直在为IE10寻找一个很好的选择,并且在CSS样式之下(但它也适用于IE8),我没有想要一个额外的样式表以便于阅读,我提出了这个想法:
<!--[if lt IE 10]><div class="column IE10-fix"><![endif]-->
<!--[if !lt IE 10]><!--><div class="column"><!--<![endif]-->
我用额外的类声明我的div或任何你想要的东西,这允许我以一种非常易读的方式在同一个样式表中添加额外的CSS。
它的W3C有效,而不是一个奇怪的CSS黑客。
答案 6 :(得分:-1)
ie8:最好的方法是
body{background:#f00\0/;}
\ 0 /是Ie8 CSS Hack