5

是否有适用于所有 IE 浏览器的 css hack。不是特定的 IE 版本。

我试过了

@media \0screen\,screen\9 {
    body { background: green; }
} 

但它在 IE7 和 IE11 中不起作用。

4

7 回答 7

5
<!--[if IE]>
    <link rel="stylesheet" type="text/css" href="all-ie-only.css" />
<![endif]-->

更多信息可以在这里找到:http ://css-tricks.com/how-to-create-an-ie-only-stylesheet/

更新如评论中提到的 ElKabong,您将在点击链接时阅读..

请注意,IE 10 及更高版本根本不支持条件注释,所以这似乎是一场噩梦,我现在没有简单的解决方案。但是您可以在点击上述链接并阅读评论时找到更多信息。

于 2014-04-29T13:07:56.183 回答
1

我只是 HTML 条件注释

<!--[if IE]>
<style>
    body { background: green; }
</style>
<![endif]-->
于 2014-04-29T13:09:04.957 回答
1

也许以下媒体查询会对您有所帮助:

    /* <= IE 7 */
    @media screen\9 {}

    /* IE 8 */
    @media \0screen {}

    /* >= IE10 */
    @media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {}

重要提示:对于 IE9 及更高版本,请阅读以下内容:

https://stackoverflow.com/a/15442638

在某些情况下,最好只为以下(其他)浏览器启用某些功能:

    /* WebKit */
    @media all and (-webkit-min-device-pixel-ratio:0) and (min-resolution: .001dpcm) { .selector {} }

    /* Opera >= 12 */
    @media (min-resolution: .001dpcm) { _:-o-prefocus, .selector {} }

    /* Firefox > 4 */
    @media screen and (min--moz-device-pixel-ratio:0) {}

在实现 svg-animation 文件时,我遇到了同样的问题。我想排除所有 IE 版本并为它们使用 gif 动画,因为没有 IE 版本不支持动画 SVG 文件。但是看看这个:

http://caniuse.com/#feat=svg-smil

正如您在我的例子中所看到的,最好默认实现一个动画 gif,并将 SVG 仅用于上面列出的“其他”浏览器。

我在http://browserhacks.com/上找到了这些媒体查询

于 2015-12-07T18:56:46.957 回答
0

IE9+ 支持@media 查询

http://caniuse.com/#search=@media

于 2014-04-29T14:01:44.050 回答
0

不,您不能在一个媒体查询中完成所有 IE,因为尚未为所有版本的 Internet Explorer 找到/创建任何 IE,但您可以将其拆分为两个不同的 CSS 组。这是一种方法:

这个适用于 8 和更新版本:

/* Internet Explorer 8+ (Media Query) */

@media screen\0 {
   body { background: green; } 
}

就像你的一样,这真的是一个 CSS hack。IE 9 正式支持媒体查询,但 IE 8 及更低版本被愚弄,允许它们通过 hack 工作。

这是 IE 7 及以下版本的一个:

/* Internet Explorer 7- (Media Query) */

@media screen\9 {
   body { background: green; } 
}

如果这对您不起作用,请在此处尝试另一个 IE 7:

/* Internet Explorer 7- (Another Media Query) */

@media, {
   body { background: green; } 
}

有很多方法可以进行 IE 7 hack。

于 2014-09-22T19:03:55.503 回答
0

如果您需要针对所有非 ie(非 <= ie11)浏览器:

@media { @media {
    /* Your styles ... */
}}

它仅适用于现代浏览器,因为 IE <= 11 不支持嵌套媒体查询。

于 2016-12-01T12:26:10.067 回答
0

尝试这个。这是从 IE 7 到 10 测试的 css hack:

    @media all and (-ms-high-contrast:none)
         {
         .myClass { myProperty: myValues }
         *::-ms-backdrop, .myClass { myProperty: myValues }
         }

这对我来说可以 ;)

于 2016-05-23T15:31:23.583 回答