ie浏览器不兼容css媒体查询的解决办法

考虑到在不同分辨率下,网站页面依然能显示一致,除了通过js来控制,css媒体查询更为方便,而痛点在于ie8不支持。

我们可以通过respond.js库来解决,这个插件的原理很简单:

将head中所有外部引入的css文件路径取出来存储在一个数组中,遍历数组,并一个个发送AJAX请求,AJAX回调后,分析response中的media query的min-width和max-width语法,它仅仅支持min-width和max-width,分析出viewport变化区间对应相应的css块,页面初始化的时候和window.resize时,根据当前viewport使用相应的css块。

在官方文档中也有一些小提示:

  • 越早引入的respond.js,也就越可能避免ie下出现的闪屏;
  • 不支持嵌套的媒体查询;
  • utf-8格式的css文件对respond.js文件的运行有影响;
  • 跨域会出现闪屏;

由此,可以根据这个情况实现基本思路,需要注意到的地方:

1、需要启动本地服务器(localhost),不能使用普通本地的url地址(file://开头);

2、需要外部引入CSS文件,将CSS样式书写在style中是无效的;

3、由于respond插件是查找CSS文件,再进行处理,所以respond文件一定要放置在CSS文件的后面;

4、另外,虽然把respond放置在head里还是在body后面都能够实现,但是建议放置在head中;

5、最好不要为CSS设置utf-8的编码;

最近做项目时发现了一个bug:由于动画@keyframe中的@符号,对respond.js造成影响。

时间: 2024-11-03 21:23:11

ie浏览器不兼容css媒体查询的解决办法的相关文章

IE8浏览器不能识别CSS伪类的解决办法。

1. 方法一:开头加上这两句 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"> 2. 方法二:<head></head>中

巧妙使用CSS媒体查询(Media Queries)和JavaScript判断浏览器设备类型的好方法

有无数的理由要求我们在任何时候都应该知道用户是使用的什么设备浏览我们的网站——宽屏,普通屏,平板,手机?知道这些特征,我们web应用的CSS和JavaScript才能同步做相应的操作.在给Mozilla Developer Networks改版设计的过程中,我发现使用CSS媒体查询(media queries)虽然非常的有效,但有时,JavaScript却不能及时知道用户浏览设备的状态.浏览网站的用户使用的是桌面电脑,还是平板,还是手机?这对于CSS来说很容易,但CSS却无法将这些信息告诉Jav

移动端1像素边框问题与CSS媒体查询

做移动端页面开发时,我们是按照UI设计图上的尺寸来做的. 比如说,UI给的图是750x1344(Iphone6标准),我们在浏览器做适配时,按照375x667来裁切,设计图上30像素的高度,开发时使用的是15px,这是因为Iphone6的设备像素比为2,css中的1px在设备中的像素为2px.当我们需要实现设计图中1px高度的边框时,在css中的1px实际上变成了2px边框,由此产生了1像素边框问题. 1.window.devicePixelRatio设备像素比 定义: window.devic

使用媒体查询功能解决网页100%宽度和固定宽度在小屏浏览器显示空白问题

通常网页都由很多模块从上到下组成,很早以前的网页风格都是上下相同的大小,而现在智能终端越来越多各种屏幕分辨率,当然如果按照整个网页一个固定大小来排版是没有问题的. 而很多网站页面都是有大的横幅,比如网站整体打算做成1200px宽度,而横幅是100%宽度,这样如果在高清电脑屏宽度>1200px下显示是没有问题的,手机端一般都是小于这个 值,那么这样导致固定宽度的1200px在手机端还是1200px并不会因屏幕变小而缩小,与此同时横幅是100%宽度(等于屏幕显示宽度)这样或许手机端的宽度是960px

CSS 媒体查询 响应式

媒体查询 从 CSS 版本 2 开始,就可以通过媒体类型在 CSS 中获得媒体支持.如果您曾经使用过打印样式表,那么您可能已经使用过媒体类型.清单 1 展示了一个示例. 清单 1. 使用媒体类型 <link rel="stylesheet" type="text/css" href="site.css" media="screen" /> <link rel="stylesheet" ty

CSS媒体查询:菜鸟笔记

CSS媒体查询 媒体查询包含了一个媒体类型和至少一个使用如高度.宽度和颜色等媒体属性来限制样式表范围的表达式.CSS3加入的媒体查询使得无需修改内容便可以使样式应用于某些特定的设备范围. 语法 媒体查询包含了一个媒体类型和如css3规范中描述的包含了一个或多个表达式的媒体属性,这些媒体属性会被解析成真或假.如果媒体查询中的媒体类型与文档要展示的设备相符则查询结果为真,并且媒体查询中的所有表达式为真. <!--link元素中的css媒体查询--> <link rel="style

使用 CSS 媒体查询创建响应式网站

来自:http://www.ibm.com/developerworks/cn/web/wa-cssqueries/ 适用于所有屏幕大小的设计 固定宽度的静态网站很快被灵活的响应式设计所取代,该设计可以根据屏幕大小进行上扩和下扩.利用响应式设计,无论您采用什么设备或屏幕来访问网站,都可以呈现一个可用的界面.响应式设计可以响应各种屏幕大小,因此也成为了 “前瞻性” 的网站,屏幕将随着新的智能手机和平板电脑的问世而快速演变.实现响应式设计的主要途径是使用 CSS 媒体查询.在本文中,我们将了解如何将

CSS媒体查询总结

1媒体查询概念 一个媒体查询由一个可选的媒体类型和零个或多个使用媒体功能限制样式表范围的表达式组成, 例如 宽度,高度和颜色.在CSS3中添加的媒体查询,允许内容的呈现针对一个特定范围的输出设备而定制,而不必改变内容本身. 2媒体查询的两种引入方式 <!-- link元素中的CSS媒体查询 --> <link rel="stylesheet" media="(max-width: 800px)" href="example.css&quo

css媒体查询:响应式网站

css媒体查询:响应式网站 媒体查询 包含了一个媒体类型和至少一个使用如宽度.高度和颜色等媒体属性来限制样式表范围的表达式.CSS3加入的媒体查询使得无需修改内容便可以使样式应用于某些特定的设备范围. 参考文章:https://developer.mozilla.org/zh-CN/docs/Web/Guide/CSS/Media_queries