有人能推荐一种最佳方法通过CSS来修改IE8的样式吗?我最近把IE8渲染成IE7以提高易用性,但不知道是否应该添加IE8特定的hack。
有人能推荐一种最佳方法通过CSS来修改IE8的样式吗?我最近把IE8渲染成IE7以提高易用性,但不知道是否应该添加IE8特定的hack。
你应该反转你的方法。首先确保你的网站在现代浏览器(如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
并进行修复等等。
请参考其他人给您提供的链接,以获取有关条件注释使用的更多信息。
最后: 使IE8以IE7的方式呈现
永远不是一个好主意,应该避免使用。IE7已经过去了(在IT世界中,IE8也应该属于过去时代...),要为现在和未来而开发,然后再考虑那些仍被困在旧技术中的人(根据您的受众和业务计划来确定)。
正如其他答案所述,您可以使用条件注释(Conditional Comments),但这会在用户使用IE8时增加一个HTTP请求。您可以在CSS文件中使用\0 hack。
img{
width:200px;//other broswers
width:100px\0;//only IE8
}
您能再详细解释一下您希望的内容吗?
通常,IE8与标准相当兼容,所以请确保您的HTML文档处于标准模式,并为IE8提供与其他浏览器相同的样式表。
如果IE出现问题,则最好的解决方案是使用条件注释为IE提供单独的样式表。
我正在寻找适用于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 hack。
仅适用于ie8:最好的方法是
body{background:#f00\0/;}
\0/ 是Ie8 CSS Hack
代码 /* IE6 IE7 */ @media all\9 { body { background: green; } } /* IE8 */ @media \0screen { body { color: blue; } } /*IE9 IE10 */ @media screen and (min-width:0\0) { body { background: yellow; } } /* IE10 IE11 */ @media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) { .selector { property: value; } }
- reyhappen