任何人都可以推荐通过CSS破解IE8样式的最佳方法,我最近一直在将IE8渲染为IE7轻松 - 但是想知道是否最好添加IE8 hacks?
你应该改变你的方法。首先,您的网站应该在现代浏览器(如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应该是远远超过......),为现在和未来发展,之后你可以关心那些仍然坚持旧技术的人(基于您的受众和商业计划)。
当发布其他答案时,您可以使用条件注释,但这会在用户使用IE8时添加一个HTTP请求。您可以在css文件中使用\ 0 hack
img{
width:200px;//other broswers
width:100px\0;//only IE8
}
你能解释一下你想要的吗?
通常,IE8与标准兼容,因此只需确保您的HTML文档处于标准模式,并为IE8提供与任何其他浏览器相同的样式表。
如果IE正在运行,那么最好的解决方案是使用Conditional Comments为IE提供单独的样式表。
使用ie7-js Javascript库,这有助于使旧的IE版本更像正确的浏览器,处理HTML和CSS。然后,正如其他人所建议的那样,以符合标准的方式编写代码,这与最新版本的Chrome,Firefox,Opera等表现良好。
我一直在为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黑客。
ie8 only:最好的方法是
body{background:#f00\0/;}
\ 0 /是Ie8 CSS Hack