9

任何人都可以推荐通过 CSS 破解 IE8 样式的最佳方法,我最近一直在将 IE8 渲染为 IE7 以方便使用 - 但想知道是否最好添加 IE8 hack?

4

7 回答 7

11

你应该颠倒你的方法。首先,您的网站应该在现代浏览器(如 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 也应该是过去了……),为现在和未来而发展,然后你就可以关心那些仍然坚持旧技术的人(基于您的受众和商业计划)。

于 2011-04-12T13:38:31.337 回答
5

使用条件注释

于 2011-04-12T13:20:44.480 回答
5

正如发布的其他答案一样,您可以使用条件注释,但是当用户使用 IE8 时会添加一个 HTTP 请求。您可以在 css 文件中使用 \0 hack

img{
width:200px;//other broswers
width:100px\0;//only IE8
}
于 2011-04-12T13:56:07.913 回答
2

你能解释一下你想要什么吗?

一般来说,IE8 是完全兼容标准的,所以只要确保您的 HTML 文档处于标准模式,并为 IE8 提供与任何其他浏览器相同的样式表。

如果 IE 出现问题,那么最好的解决方案是使用Conditional Comments给 IE 一个单独的样式表。

于 2011-04-12T13:23:55.190 回答
0

使用ie7-js Javascript 库,它可以使旧版 IE 在处理 HTML 和 CSS 时表现得更像正常的浏览器。然后,正如其他人所建议的那样,以符合标准的方式编写代码,该方式与最新版本的 Chrome、Firefox、Opera 等运行良好。

于 2011-04-12T18:59:17.737 回答
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 hack。

于 2016-09-30T15:11:31.690 回答
-1

仅限ie8:最好的方法是

body{background:#f00\0/;}

\0/ 是 Ie8 CSS Hack

于 2014-02-19T04:35:35.303 回答