使用@media screen解决移动web开发的多分辨率问题

发布时间:2021-06-17 13:50 | 人气数:624
随着移动设备飞速的发展,移动产品的屏幕规格越来越多。从几年前的320×240像素的屏幕,到现在1920×1080分辨率的屏幕。各种分辨率的屏幕让前端开发的人们叫苦连连,如何使用一种有效的方式来解决各种屏幕分辨率下的用户体验呢?
在css2中就有media type属性,用于判断媒体类型。而在css3中新增了 media query属性用于增强media type属性。因此当css3问世后,这个问题有了新的解决办法。media query属性的是media type属性的增强功能,使media type可以进行条件判断输出对应的css。
@media screen and (min-width: 769px) { 
    /* STYLES HERE */ 
} 
@media screen and (min-device-width: 481px) and (max-device-width: 768px) { 
    /* STYLES HERE */ 
} 
@media only screen and (max-device-width: 480px) { 
    /* STYLES HERE */ 
} 
media query的使用方法
一、判断媒体类型,引用不同的样式表
<link rel=”stylesheet” media=”screen and (判断条件)” herf=”需要调用的样式表文件” /> 
通过设定屏幕的判断条件,调用对应的css文件。该实例多用于整页面不同风格的css调用与选取,使用该方法可能需要为一个页面制作多份个css文件。
二、判断媒体类型,执行不同的css样式属性
@media screen and (max-width:240px){ 
.box{width:200px;} 
.title{color:red;} 
} 
上述实例可以出现在外部样式表与内部样式表中。直接在样式表中以@media screen属性标注媒体类型的判断事件,在括号中写出判断条件为max-width:240px;该判断的意思是屏幕宽度大于240px则执行大括号内 的样式属性,如果小于240px则不执行。
前端开拓者做了@media screen相应的判断尝试,并在首页与文章列表页加入了@media screen的功能实例。判断样式书写如下:
@media screen and (min-width:1200px){ 
.post_box{width: 45%;float: left;} 
.c-con{height:140px;} 
} 
如果用户使用分辨率宽度大于1200px的浏览器访问网站,则页面呈现为三栏模式,如下图:

如果分辨率小于1200px则页面会呈现为两栏模式,如下图:

 

建议在使用判断时,如果只是在样式表内进行判断的话,可以修改部分重要样式来达到修改布局的目的。

通过@media screen与width条件判断,可以事先对页面的宽度进行策划,然后根据不同的页面宽度设定不同的css样式,有效的控制web页面在各种分辨率下的样式表先。

<style type="text/css"> 
    /* default styles here for older browsers. 
       I tend to go for a 600px - 960px width max but using percentages 
    */ 
    @media only screen and (min-width:960px){ 
        /* styles for browsers larger than 960px; */ 
    } 
    @media only screen and (min-width:1440px){ 
        /* styles for browsers larger than 1440px; */ 
    } 
    @media only screen and (min-width:2000px){ 
        /* for sumo sized (mac) screens */ 
    } 
    @media only screen and (max-device-width:480px){ 
       /* styles for mobile browsers smaller than 480px; (iPhone) */ 
    } 
    @media only screen and (device-width:768px){ 
       /* default iPad screens */ 
    } 
    /* different techniques for iPad screening */ 
    @media only screen and (min-device-width: 481px) and (max-device-width: 1024px) and (orientation:portrait) { 
      /* For portrait layouts only */ 
    } 
    @media only screen and (min-device-width: 481px) and (max-device-width: 1024px) and (orientation:landscape) { 
      /* For landscape layouts only */ 
    } 
</style> 


关键词:media screen,移动web开发