好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

CSS3中的Media Queries学习笔记

一、Media Queries 支持的属性

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

三、引用样式示例

CSS Code 复制内容到剪贴板

<link&nbs p; rel= "stylesheet"   ;m edia= "all"   hr ef= "style.css"  />    <link rel= "stylesheet"  media= "screen and (min-width:980px)"  href= "desktop.css"  />    <link rel= "stylesheet"  media= "screen and (min-width:768px) and (max-width:980px)"  href= "pad.css"  />    <link rel= "stylesheet"  media= "screen and (min-width:480) and (max-width: 768px)"  href= "phone.css"  />    <link rel= "stylesheet"  media= "screen and (max-width:320px)"  href= "small.css"  />  

四、内联样式示例

CSS Code 复制内容到剪贴板

@media  screen  and ( min-width :  980px ) {        //css  code    }    @ screen  and ( min-width : 768px ) and ( max-width : 980px ) {        //css  code    }    @ screen  and ( min-width :480) and ( max-width :  768px ) {        //css  code    }    @ screen  and ( max-width : 320px ) {        //css  code    }       @media  screen  and (max-device- width :  480px ) {        //max-device- width 等于 480px    }    @media  screen  and (device-as PE ct-ratio: 16/9),  screen  and (device-aspect-ratio: 16/10) {        //设备 宽 高比    }    @media  all  and ( orientation : portr ai t ) {        //竖屏    }    @media  all  and (orientation: landscape ) {        //横屏    }  


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

CSS Code 复制内容到剪贴板

@media  screen  and ( max-width :  900px ) {       .. .    }  

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

XM L/HT ML Code @H_884_ 406 @复制内容到剪贴板

<!--[if lt IE 9] >         < script   src = "http://css3-mediaqueries-js. GOOGLE code .COM /svn/trunk/css3-mediaqueries.js" > </ script >    <![endif]-- >   

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

JavaScript Code 复制内容到剪贴板

/*Adjust the layout in IE8 and lower than IE8 when the  br owser is narrow*/    function   PR ocessLowerIE navigate ()    {        VAR  isIE = document.all ? 1 : 0;        if  (isIE  ==  1)       {            if (navigator.userAgent.indexOf( "MSIE7.0" ) > 0 || navigator.userAgent.indexOf( "MSIE 8.0" ) > 0)           {           //  var doc=document;                 var  link=document.createElement( "link" );               link. setattribute ( "rel" ,  "stylesheet" );               link.setAttribute( "type" ,  "text/css" );               link.setAttribute( "id" ,  "size -s tylesheet" );               link.setAttribute( "href" ,  "" );                      var  heads = document. getelementsbytagname ( "head" );                if (heads.length)                   heads[0].appendChild(link);                else                   document.documentElement.appendChild(link);                  document.wr IT e( "<script type='text/javascript' src='jquery.min.js'></script>" );               document.write( "<script type='text/javascript' src='media_screen.js'></script>" );                 }       }     }    var  lowerIE8 = processLowerIENavigate();       media_screen.js文件内容如下,直接从网上copy:    function  adjustStyle(width) {        width = pars ei nt(width);         if  (width < 902) {    //alert("<900");    //alert(width);            $( " # size-stylesheet" ).attr( "href" ,  "navigateLowerIE8.css" );        }  else  {           // alert(">900");       //alert(width);           $( "#size-stylesheet" ).attr( "href" ,  "" );         }    }       $( function () {        adjustStyle($( this ).width());        $(window).resize( function () {            adjustStyle($( this ).width());        });    });  

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

@H_ 304 _843@

总结

以上是 为你收集整理的 CSS3中的Media Queries学习笔记 全部内容,希望文章能够帮你解决 CSS3中的Media Queries学习笔记 所遇到的问题。

如果觉得 网站内容还不错, 推荐好友。

查看更多关于CSS3中的Media Queries学习笔记的详细内容...

  阅读:19次