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-width
和max-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,你运气不好。