自适应网页的媒体查询


原文链接: 自适应网页的媒体查询

CSS2.1规范最重要的新特性之一就是引入了media types,下边是media types的10个值,常用的并不多。当没有media标签时,默认为media=”all”:
all– 用于所有设备类型
aural– 用于语音和音乐合成器
braille– 用于触觉反馈设备
embossed– 用于凸点字符(盲文)印刷设备
handheld– 用于小型或手提设备
print– 用于打印机
projection– 用于投影图像,如幻灯片
screen– 用于计算机显示器
tty– 用于使用固定间距字符格的设备。如电传打字机和终端
tv– 用于电视类设备
示例:

 @media print {
    body { font-size: 10pt }
  }
  @media screen {
    body { font-size: 13px }
  }
  @media screen, print {
    body { line-height: 1.2 }
  }

随着移动终端的发展,screen重要性逐渐显现出来。为了更好的支持移动终端设备,
css3加强了media types,引入了Media Queries,其作用就是允许使用

css表达式用以确定媒体的情况,如查询设备的屏幕尺寸颜色等信息,借此让网页更好的适应不同的屏幕。
示例:

    @media screen and (device-aspect-ratio: 16/9) { … }
    @media screen and (device-aspect-ratio: 32/18) { … }
    @media screen and (device-aspect-ratio: 1280/720) { … }
    @media screen and (device-aspect-ratio: 2560/1440) { … }
    @media all and (color) { … }
    @media all and (min-color: 1) { … }
    
    <link rel="stylesheet" media="only screen and (-webkit-min-device-pixel-ratio: 2)" type="text/css" href="iphone4.css" />


    @media screen and (min-width:1280px){
    	body{ ...  }
    }
    
    @media screen and (min-width: 800px) and (max-width: 1280px) {
    	body{ ...  }
    }
    
    @media screen and (max-width: 800px) {
    	body{ ... }
    }

应用案例:
解决icon在不同分辨率屏幕下显示效果问题。解决办法有多种,原理都是采用根据分辨率不同采用不同大小图片的办法。这里用Media Queries可以轻松实现不同屏幕兼容:

    /* 普通屏幕 */
    .icon {
    	width:16px;
    	height:16px;
    	background:url(images/icon.png) no-repeat;
    }


    /* Retina Screen 用大图缩小适配
       background-size要写在background-image后面,否则部分浏览器会失效
    */
    @media only screen and (-webkit-min-device-pixel-ratio:2) {
     .icon {
    	 background:url("images/icon2.png") no-repeat;
    	 -webkit-background-size:16px 16px;
    	 background-size:16px 16px;
     }
    }

-webkit-min-device-pixel-ratio值:

Devices with -webkit-min-device-pixel-ratio: 1.0
All non-Retina Macs
All non-Retina iOS devices
Acer Iconia A500
Samsung Galaxy Tab 10.1
Samsung Galaxy S

Devices with -webkit-min-device-pixel-ratio: 1.3
Google Nexus 7

Devices with -webkit-min-device-pixel-ratio: 1.5
Google Nexus S
Samsung Galaxy S II
HTC Desire
HTC Desire HD
HTC Incredible S
HTC Velocity
HTC Sensation

Devices with -webkit-min-device-pixel-ratio: 2.0
iPhone 4
iPhone 4S
iPhone 5
iPad (3rd generation)
iPad 4
All Macs with Retina displays
Google Galaxy Nexus
Google Nexus 4
Google Nexus 10
Samsung Galaxy S III
Samsung Galaxy Note II
Sony Xperia S
HTC One X

Devices with -webkit-min-device-pixel-ratio: 3.0
HTC Butterfly
Sony Xperia Z

`