css3之Media Queries 媒体查询
一、初步了解
Media Queries是CSS3新增加的一个模块功能,其最大的特点就是通过css3来查询媒体,然后调用对应的样式。
了解Media Queries之前需要了解媒体类型以及媒体特性:
可以通过媒体类型(Media Type)对不同的设备指定不同的样式,W3C总共列出了10种媒体类型
二、媒体类型的引用方法有3种
- link方法
就是在<link>标签引用样式的时候,通过link标签中的media属性来指定不同的媒体类型。如下:
<link rel="stylesheet" type=" text/css " href="style.css" media="screen"/>
- @import方法
@import可以引用样式文件,同样也可以用来引用媒体类型。@import引入媒体类型主要有两种方式。
①通过@import调用另一个样式文件
@importurl(reset.css) screen;
@importurl(print.css) print;
②在<head></head>标签中的<style></style>中引入,但这种方法IE6-7不支持
<head>
<style type="text/css">
@importurl(style.css) screen;
</style>
</head>
- @media方法
@media是css3中新引进的一个特性,被称为媒体查询。在页面中也可以通过这个属性来引入媒体类型。@media引入媒体类型也有两种方式
①在样式文件中引用媒体类型
@media screen {
选择器{/*你的样式代码写在这里…*/}
}
②使用@media引入媒体类型的方式是在<head></head>标签中的<style>中使用
<head>
<style type="text/css">
@media screen{
选择器{/*你的样式代码写在这里…*/}
}
</style>
</head>
三、Media Queries使用方法
前面简单的介绍了Media Queries如何引用到项目中,但Media Queries有其自己的使用规则。具体来说,Media Queries的使用方法如下。
@media 媒体类型 and (媒体特性){样式}
媒体特性是通过min/max来表示大于等于或小于做为逻辑判断,而不是使用小于(<)和大于(>)这样的符号来判断。
①最大宽度max-width
意思是指媒体类型小于或等于指定宽度时,样式生效:
/*当屏幕小于或等于480px时,.ads将隐藏 */
@media screen and (max-width:480px){ .ads { display:none; } }
②最小宽度min-width
指媒体类型大于或等于指定宽度时,样式生效
/* 当屏幕大于或等于900px时,容器“.wrapper” 的宽度为980px*/
@media screen and (min-width:900px){
.wrapper{width: 980px;}
}
③多个媒体特性使用
Media Queries可以使用关键词"and"将多个媒体特性结合在一起。
/* 当屏幕在600px~900px之间时,body的背景色为#000 */
@media screen and (min-width:600px) and (max-width:900px){
body {background-color:#000;}
}
④设备屏幕的输出宽度
在智能设备上,例如iPhone、iPad等,还可以根据屏幕设备的尺寸来设置相应的样式(或者调用相应的样式文件)。同样的,对于屏幕设备同样可以使用“min/max”对应参数,如“min-device-width”或者“max-device-width”。
<link rel="stylesheet" media="screen and (max-device-width:480px)" href="iphone.css" />
上面的代码指的是“iphone.css”样式适用于最大设备宽度为480px,这里的max-device-width 所指的是设备实际的分辨率,也就是可视面积分辨率。
⑤not关键词
使用关键词“not” 使用来排除某种特定的媒体类型。
@media not print and (max-width: 1200px){样式代码}
上面表示样式代码将作用在 除print打印设备和设备小于或等于1200px的所有设备中
⑥only关键词
only用来指定某种特定的媒体类型,可以用来排除不支持媒体查询的浏览器。在Media Query中如果没有明确指定Media Type,那么其默认为all
<linkrel="stylesheet" media="only screen and (max-device-width:240px)" href="android240.css" />
另外在样式中,还可以使用多条语句来将同一个样式应用于不同的媒体类型和媒体特性中,如下所示:
<linkrel="stylesheet" type="text/css" href="style.css" media="handheld and (max-width:480px), screen and (min-width:960px)" />