IE8支持CSS Media Query

IE8不支持以下CSS媒体查询:

@import url("desktop.css") screen and (min-width: 768px); 

如果不是,写作的替代方式是什么? 在Firefox中也是一样。

任何问题与下面的代码?

 @import url("desktop.css") screen; @import url("ipad.css") only screen and (device-width:768px); 

IE9之前的Internet Explorer版本不支持媒体查询

如果你正在寻找降低 IE8用户devise的方法,你可能会发现IE的条件评论是有帮助的。 使用这个,你可以指定一个IE 8/7/6特定的样式表,它覆盖了以前的规则。

例如:

 <link rel="stylesheet" type="text/css" media="all" href="style.css"/> <!--[if lt IE 9]> <link rel="stylesheet" type="text/css" media="all" href="style-ie.css"/> <![endif]--> 

这不会允许在IE8中的响应式devise,但可能是比使用JS插件更简单,更容易访问的解决scheme。

css3-mediaqueries-js可能是你正在寻找的东西:这个脚本模拟媒体查询。 然而(从脚本的网站)它“不能在@import样式表(你不应该用于性能的原因),也不会听<link><style>元素的媒体属性”。

同样的,你有更简单的Respond.js ,它只启用min-widthmax-width媒体查询。

我find的最好的解决scheme是Respond.js,特别是如果你主要关心的是确保你的响应式devise在IE8中工作。 这是非常轻量级的1kb时min / gzipped,你可以确保只有IE8客户端加载它:

 <!--[if lt IE 9]> <script src="respond.min.js"></script> <![endif]--> 

如果您使用bootstrap,也是推荐的方法: http : //getbootstrap.com/getting-started/#support-ie8-ie9

IE8(及更低版本)和3.5之前的Firefox不支持媒体查询。 Safari 3.2部分支持它。

有一些解决方法使用JavaScript来为这些浏览器添加媒体查询支持。 试试这些:

媒体查询jQuery插件(只处理最大/最小宽度)

css3-mediaqueries-js – 一个旨在向不支持的浏览器添加媒体查询支持的库

取自css3mediaqueries.js项目页面。

注意:不能在@ imported样式表(你不应该用于性能的原因)。 也不会听<link><style>元素的媒体属性。

使用css3-mediaqueries-js的简单方法是在closuresbody标签之前包含以下内容:

 <!-- css3-mediaqueries.js for IE less than 9 --> <!--[if lt IE 9]> <script src="//css3-mediaqueries-js.googlecode.com/svn/trunk/css3-mediaqueries.js"> </script> <![endif]--> 

编辑答案:IE理解只是屏幕和打印为import媒体。 与导入语句一起提供的所有其他CSS都会导致IE8忽略导入语句。 Geo浏览器如safari或mozilla没有这个问题。

媒体查询在IE8及以下版本中完全不受支持。


基于Javascript的解决方法

要添加对IE8的支持,您可以使用几个JS解决scheme之一。 例如,可以添加Respond以添加对IE8的媒体查询支持,仅使用以下代码:

 <!--[if lt IE 9]> <script src="respond.min.js"> </script> <![endif]--> 

CSS Mediaqueries是另一个图书馆,做同样的事情。 将该库添加到HTML的代码将是相同的:

 <!--[if lt IE 9]> <script src="css3-mediaqueries.js"> </script> <![endif]--> 

替代scheme

如果您不喜欢基于JS的解决scheme,则还应该考虑添加IE <9的样式表,在其中调整特定于IE <9的样式。 为此,您应该将以下HTML添加到您的代码中:

 <!--[if lt IE 9]> <link rel="stylesheet" type="text/css" media="all" href="style-ielt9.css"/> <![endif]--> 

注意 :

从技术上讲,这是另一种select:使用CSS黑客来定位IE <9。 它与IE <9样式表具有相同的影响,但您不需要单独的样式表。 但是,我不推荐这个选项,因为它们会产生无效的CSS代码(这只是今天通常不赞成使用CSS黑客的几个原因之一)。

在Internet Explorer 8之前,不支持媒体查询。 但根据您的情况,您可以尝试使用条件注释仅定位Internet Explorer 8或更低版本。 你只需要使用适当的CSS文件架构。

http://blog.keithclark.co.uk/wp-content/uploads/2012/11/ie-media-block-tests.php

我使用了@media \0screen {} ,它在REAL IE8中对我很好。

IE直到IE9才添加媒体查询支持。 所以用IE8,你运气不好。