最新的Web开发教程
 

CSS媒体查询


CSS2引入媒体类型

@media规则,在CSS2推出,使得它可以定义不同的媒体类型的不同样式规则。

例子:你可以有一组样式规则为计算机屏幕,一个用于打印机,一个用于手持设备,一个用于电视型装置,并依此类推。

不幸的是,这些媒体类型从未设备,使其比打印介质类型等得到了很多的支持。


CSS3推出媒体查询

在CSS3媒体查询扩展CSS2媒体类型的想法:与其找一个类型的设备,他们看的设备的能力。

媒体查询可以用于检查很多东西,比如:

  • 宽度与视口高度
  • 宽度和装置的高度
  • 方向(是平板电脑/手机横向或纵向模式?)
  • 解析度

使用媒体查询是一个定制的样式表传递到平板电脑,iPhone,和Android的流行技术。


浏览器支持

在表中的数字规定,完全支持@media规则的第一个浏览器版本。

属性
@media 21.0 9.0 3.5 4.0 9.0

媒体查询语法

媒体查询由媒体类型,并且可以包含一个或多个表达式,它解析为true或false。

@media not|onlymediatype and (expressions) {
    CSS-Code;
}

如果指定的媒体类型匹配时,正被显示在文件的设备的类型,并在媒体查询所有表达式为真查询的结果为真。 当媒体查询为真,相应的样式表或样式规则应用,按照正常的级联规则。

除非你使用没有或者只有运营商,媒体类型是可选的, all类型将被暗示。

您也可以有不同的媒体不同的样式表:

<link rel="stylesheet" media=" mediatype and|not|only ( expressions )" href=" print.css ">

CSS3媒体类型

描述
all 用于所有媒体类型的设备
print 用于打印机
screen 用于电脑屏幕,平板电脑,智能手机等。
speech 使用屏幕阅读器的“阅读”的页面出声

媒体查询简单的例子

使用媒体查询的一种方法是有一个替代的CSS部分正确的样式表内。

下面的例子改变background-color ,以浅绿,如果视口是480像素或更宽(如果视口小于480像素, background-color将是粉红色):

@media screen and (min-width: 480px) {
    body {
        background-color: lightgreen;
    }
}
试一试»

下面的例子说明会浮到页面左边的菜单,如果视口480像素或更宽(如果视口小于480像素,菜单将在内容的顶部):

@media screen and (min-width: 480px) {
    #leftsidebar {width: 200px; float: left;}
    #main {margin-left:216px;}
}
试一试»

CSS3 @media参考

对于所有的媒体类型和功能/表达式完整的概述,请看@media在我们的参考CSS规则。