CSS3中的Media Queries学习笔记


Posted in HTML / CSS onMay 23, 2016

一、Media Queries 支持的属性
CSS3中的Media Queries学习笔记

CSS3中的Media Queries学习笔记

二、关键字
and - 结合多个媒体查询 not - 排除某种制定的媒体类型 only - 用来定某种特定的媒体类型

三、引用样式示例

CSS Code复制内容到剪贴板
  1. <link rel="stylesheet" media="all" href="style.css" />   
  2. <link rel="stylesheet" media="screen and (min-width:980px)" href="desktop.css" />   
  3. <link rel="stylesheet" media="screen and (min-width:768px) and (max-width:980px)" href="pad.css" />   
  4. <link rel="stylesheet" media="screen and (min-width:480) and (max-width: 768px)" href="phone.css" />   
  5. <link rel="stylesheet" media="screen and (max-width:320px)" href="small.css" />  

四、内联样式示例

CSS Code复制内容到剪贴板
  1. @media screen and (min-width980px) {   
  2.     //css code  
  3. }   
  4. @screen and (min-width:768px) and (max-width:980px) {   
  5.     //css code  
  6. }   
  7. @screen and (min-width:480) and (max-width768px) {   
  8.     //css code  
  9. }   
  10. @screen and (max-width:320px) {   
  11.     //css code  
  12. }   
  13.   
  14. @media screen and (max-device-width480px) {   
  15.     //max-device-width等于480px  
  16. }   
  17. @media screen and (device-aspect-ratio: 16/9), screen and (device-aspect-ratio: 16/10) {   
  18.     //设备宽高比   
  19. }   
  20. @media all and (orientation:portrait) {   
  21.     //竖屏   
  22. }   
  23. @media all and (orientation:landscape) {   
  24.     //横屏   
  25. }  

五、I8的兼容性问题解决
问题根源:
在项目的CSS文件中采用了media这东东来根据视窗的大小自动调整布局,但是,但是IE8及以下版本浏览器不支持CSS3 media queries,也就是@media screen and (max-width: 900px) 里面的css代码没有执行,

CSS Code复制内容到剪贴板
  1. @media screen and (max-width900px) {   
  2.   ...   
  3. }  

这如何是好啊,网上倒是有不少人提出解决方法,最简单的方法就是:
IE8和之前的浏览器不支持CSS3 media queries,你可以在页面中添加css3-mediaqueries.js来解决这个问题。

XML/HTML Code复制内容到剪贴板
  1. <!--[if lt IE 9]>  
  2.     <script src="http://css3-mediaqueries-js.googlecode.com/svn/trunk/css3-mediaqueries.js"></script>  
  3. <![endif]-->  

原来如此,还挺简单嘛,结果大失所望啊,项目中怎么试怎么就不行呢,还望试过可行的同仁点拨点拨啊,没办法只能采用另一种稍微复杂些的方法,也是从网上学来,这里要考虑两个问题,一是只有IE8及其低版本才做此处理,二是只有浏览器缩小到某一个大小范围后才做此处理。方法如下:
原理:采用jquery,其实不懂,会用就行,然后在html中根据需要来改变对应的CSS文件
解决方法:
在所有页面的共用js文件后面添加如下代码:

JavaScript Code复制内容到剪贴板
  1. /*Adjust the layout in IE8 and lower than IE8 when the browser is narrow*/  
  2. function processLowerIENavigate()   
  3. {   
  4.    var isIE = document.all ? 1 : 0;   
  5.    if (isIE == 1)   
  6.    {   
  7.        if(navigator.userAgent.indexOf("MSIE7.0") > 0 || navigator.userAgent.indexOf("MSIE 8.0") > 0)   
  8.        {     
  9.     //  var doc=document;    
  10.            var link=document.createElement("link");   
  11.            link.setAttribute("rel""stylesheet");   
  12.            link.setAttribute("type""text/css");   
  13.            link.setAttribute("id""size-stylesheet");   
  14.            link.setAttribute("href""");   
  15.      
  16.            var heads = document.getElementsByTagName("head");   
  17.            if(heads.length)   
  18.                heads[0].appendChild(link);   
  19.            else  
  20.                document.documentElement.appendChild(link);   
  21.   
  22.            document.write("<script type='text/javascript' src='jquery.min.js'></script>");   
  23.            document.write("<script type='text/javascript' src='media_screen.js'></script>");   
  24.      
  25.        }   
  26.    }    
  27. }   
  28. var lowerIE8 = processLowerIENavigate();   
  29.   
  30. media_screen.js文件内容如下,直接从网上copy:   
  31. function adjustStyle(width) {   
  32.     width = parseInt(width);   
  33.     if (width < 902) {   
  34. //alert("<900");   
  35. //alert(width);   
  36.         $("#size-stylesheet").attr("href""navigateLowerIE8.css");   
  37.     } else {   
  38.       // alert(">900");   
  39.   //alert(width);   
  40.        $("#size-stylesheet").attr("href""");    
  41.     }   
  42. }   
  43.   
  44. $(function() {   
  45.     adjustStyle($(this).width());   
  46.     $(window).resize(function() {   
  47.         adjustStyle($(this).width());   
  48.     });   
  49. });  

navigateLowerIE8.css文件就是IE8其低版本浏览器在缩小时的页面布局了。OK,一切都确实搞定。

HTML / CSS 相关文章推荐
CSS3教程:新增加的结构伪类
Apr 02 HTML / CSS
CSS3结构性伪类选择器九种写法
Apr 18 HTML / CSS
用css3实现当鼠标移进去时当前亮其他变灰效果
Apr 08 HTML / CSS
使用CSS3来匹配横屏竖屏的简单方法
Aug 04 HTML / CSS
非常漂亮的CSS3百叶窗焦点图动画
Feb 24 HTML / CSS
深入理解css中vertical-align属性
Apr 18 HTML / CSS
CSS3 实现弹幕的示例代码
Aug 07 HTML / CSS
HTML5的video标签的浏览器兼容性增强方案分享
May 19 HTML / CSS
html5中监听canvas内部元素点击事件的三种方法
Apr 28 HTML / CSS
HTML5 Canvas——用路径描画线条实例介绍
Jun 09 HTML / CSS
html5的canvas元素使用方法介绍(画矩形、画折线、圆形)
Apr 14 HTML / CSS
HTML5 Canvas入门学习教程
Mar 17 HTML / CSS
详解CSS3的perspective属性设置3D变换距离的方法
May 23 #HTML / CSS
CSS3中设置3D变形的transform-style属性详解
May 23 #HTML / CSS
css 元素选择器的简单实例
May 23 #HTML / CSS
css sprite简单实例
May 23 #HTML / CSS
CSS3中的Transition过度与Animation动画属性使用要点
May 20 #HTML / CSS
CSS3制作炫酷的下拉菜单及弹起式选单的实例分享
May 17 #HTML / CSS
CSS3中各种颜色属性的使用教程
May 17 #HTML / CSS
You might like
编写自己的php扩展函数
2006/10/09 PHP
php中使用gd库实现远程图片下载实例
2015/05/12 PHP
php实现向javascript传递数组的方法
2015/07/27 PHP
PHP 类与构造函数解析
2017/02/06 PHP
常用参考资料(手册)下载或者链接
2006/07/22 Javascript
XRegExp 0.2: Now With Named Capture
2007/11/30 Javascript
jquery ui对话框实例代码
2013/05/10 Javascript
百度搜索框智能提示案例jsonp
2016/11/28 Javascript
详解nodejs 文本操作模块-fs模块(五)
2016/12/23 NodeJs
Angular中ng-bind和ng-model的区别实例详解
2017/04/10 Javascript
vuex学习之Actions的用法详解
2017/08/29 Javascript
javascript显示动态时间的方法汇总
2018/07/06 Javascript
详解Vue中watch的详细用法
2018/11/28 Javascript
js实现一个简易计算器
2020/03/30 Javascript
vue实现虚拟列表功能的代码
2020/07/28 Javascript
js实现飞机大战游戏
2020/08/26 Javascript
javascript实现京东快递单号的查询效果
2020/11/30 Javascript
[57:37]EG vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
[02:16]完美世界DOTA2联赛PWL S3 集锦第三期
2020/12/21 DOTA
寻找网站后台地址的python脚本
2014/09/01 Python
python测试驱动开发实例
2014/10/08 Python
Python错误提示:[Errno 24] Too many open files的分析与解决
2017/02/16 Python
怎么使用pipenv管理你的python项目
2018/03/12 Python
Python+OpenCV实现车牌字符分割和识别
2018/03/31 Python
利用Pandas读取文件路径或文件名称包含中文的csv文件方法
2018/07/04 Python
Python模块相关知识点小结
2020/03/09 Python
python3读取autocad图形文件.py实例
2020/06/05 Python
CSS3圆角边框和边界图片效果实例
2016/07/01 HTML / CSS
荷兰优雅女装网上商店:Heine
2016/11/14 全球购物
美国领先的机场停车聚合商:Airport Parking Reservations
2020/02/28 全球购物
车辆安全检查制度
2014/01/12 职场文书
销售员岗位职责
2014/06/09 职场文书
2015年度内部审计工作总结
2015/05/20 职场文书
2015年四年级班主任工作总结
2015/10/22 职场文书
mysql配置SSL证书登录的实现
2021/09/04 MySQL
vue3不同环境下实现配置代理
2022/05/25 Vue.js