CSS3媒体查询

CSS3媒体查询也就是指@media 查询

媒体查询不需要像CSS3其他属性一样添加前缀。

@media 查询

使用 @media 查询,就可以针对不同的媒体类型定义不同的样式。

@media 可以针对不同屏幕尺寸设置不同样式,特别是针对响应式页面。

当改变浏览器大小过程中,页面会根据浏览器的宽度和高度重新渲染页面。

CSS语法

    @media mediatype and|not|only (media feature){
        CSS-Code;
    }

也可以针对不同的媒体使用不同stylesheets:

    <link rel="stylesheet" media="mediatype and|not|only (media feature)" href="mystylesheet.css" />

mediatype媒体类型

all 用于所有设备

print 用于打印机和打印预览

screen 用于电脑屏幕,平板电脑,智能手机等

speech 用于屏幕阅读器等发声设备

媒体特性

媒体特性书写方式为:

媒体特性:媒体特性指定值

1.最大宽度max-width

max-width指媒体类型小于或等于指定的宽度时,样式生效。

    @media screen and (max-width:480px){
        .aside{
            display:none;
        }
    }

上面表示当屏幕小于或等于480px时,侧边栏(.aside)将被隐藏。

2.最小宽度min-width

min-width指媒体类型大于或等于指定宽度时,样式生效。

    @media screen and (min-width:1200px){
        .nav{
            width:1000px;
        }
    }

上面表示当屏幕大于或等于1200px时,导航栏(.nav)宽度为1000px。

3.多个媒体特征使用

媒体查询可以使用关键词and将多个媒体特性结合在一起。一个媒体查询可以包含0到多个表达式,表达式又可以包含0到多个关键字,以及一种媒体类型。

当屏幕在500px~900px之间时,body的背景色为金色,如下所示:

    @media screen and (min-width:500px) and (max-width:900px){
        body{
            background-color:gold;
        }
    }
4.设备屏幕的输出宽度Device Width

在只能设备上,可以根据屏幕设备的尺寸来设置相应的样式(或者调用相应的样式文件)。同样对于屏幕设备可以使用min/max对应参数。

    <link rel="stylesheet" media="screen and (max-device-width:480px)" href="iphone.css" />

上述代码指“iphone.css”样式适用于最大设备宽度为480px。

5.not关键词

使用关键词“not”是用来排除某种制定的媒体类型,也就是用来排除符合表达式的设备。 也就是说not关键词表示对后面的表达式执行反操作。

    @media not print and (max-width:1200px){样式代码}

上述代码表示:样式代码将被使用在除打印设备和设备宽度小于1200px下的所有设备中。

6.only关键词

only用来指定某种特定的媒体类型,可以用来排除不支持媒体查询的浏览器。

only很多时候用来对不支持Media Query但却支持Media Type的设备隐藏样式表的。其主要有:

支持媒体特性的设备,正常调用样式,此时可以认为only不存在;

不支持媒体特性但又支持媒体类型的设备,这样就会不读样式,因其首先读取only而非screen;

另外不支持Media Query的浏览器,不论是否支持only,样式都不会被采用。