您的位置:首页 > 产品设计 > UI/UE

CSS3属性之Media Queries

2016-12-07 13:24 387 查看
Media Queries属性在做响应式布局的时候功不可没,如果做过响应式,对下面的写法一定很熟悉:

@media screen and (min-width: 320px) { … }


其中包含了媒体的引入方式、逻辑操作符、媒体类型(Media Type)、媒体特性(Media Query)等,下面来详细的看下这些属性。

媒体的引入方式:

1)link方法引入(html文件head中)

<link rel="stylesheet" href="style.css" media="screen and (min-width: 320px)" />


2)@media引入(css代码中)

@media screen and (min-width: 320px) { … }


3)xml方式引入(xml文件中)

<?xml-stylesheet rel="stylesheet" href="style.css" media="screen and (min-width: 320px)" ?>


4)@import方式引入(css代码中)

@import url(style.css) screen and (min-width: 320px);


注:其中1-2是工作中经常用到的,另外如果以引入文件的形式引入css,即使媒体查询返回假,css仍会被加载。

逻辑操作符

操作符 and ',' only not 可以用来构建复杂的媒体查询,具体如下:

and 操作符用来把多个媒体属性组合起来,合并到同一条媒体查询中,只有当每个属性都为真时,这条查询的结果才为真。

@media srccen and (min-width: 320px) and (max-width: 480px) { … }


',' 操作符将多个媒体查询以逗号分隔放在一起,只要其中任何一个为真,整个媒体语句就返回真。相当于 or 操作符。

@media (min-width: 700px), handheld and (orientation: landscape) { ... }


not 操作符用来对一条媒体查询的结果进行取反。

@media not screen and (color), print and (color)


@media (not (screen and (color))), print and (color)  /* 等同上一行代码 */


only 操作符表示仅在媒体查询匹配成功的情况下应用指定样式。可以通过它让选中的样式在老式浏览器中不被应用。例如以下代码,在不支持Media Query的浏览器中则不会引入example.css。

<link rel="stylesheet" media="only screen and (color)" href="example.css" />


注:若使用了 not 或 only 操作符,必须明确指定一个媒体类型。

媒体类型(Media Type)

媒体类型版本兼容性简介
allCSS2所有浏览器用于所有媒体设备类型
auralCSS2Opera用于语音和音乐合成器
brailleCSS2Opera用于触觉反馈设备
handheldCSS2Chrome,Safari,Opera用于小型或手持设备
printCSS2所有浏览器用于打印机
projectionCSS2Opera用于投影图像,如幻灯片
screenCSS2所有浏览器用于计算机显示器
ttyCSS2Opera用于使用固定间距字符格的设备。如电传打字机和终端
tvCSS2Opera用于电视类设备
embossedCSS2Opera用于凸点字符(盲文)印刷设备
注:W3C规定了10中媒体类型,但是大部分浏览器实现的和我们经常用的为all、screen、print三种。

媒体特性(Media Query)

媒体特性取值接受min/max简介
width<length>yes定义输出设备中的页面可见区域宽度
height<length>yes定义输出设备中的页面可见区域高度
device-width<length>yes定义输出设备的屏幕可见宽度
device-height<length>yes定义输出设备的屏幕可见高度
orientationportrait | landscapeno定义'height'是否大于或等于'width'。值portrait代表是,landscape代表否
aspect-ratio<ratio>yes定义'width'与'height'的比率
device-aspect-ratio<ratio>yes定义'device-width'与'device-height'的比率。如常见的显示器比率:4/3, 16/9, 16/10
color<integer>yes定义每一组输出设备的彩色原件个数。如果不是彩色设备,则值等于0
color-index<integer>yes定义在输出设备的彩色查询表中的条目数。如果没有使用彩色查询表,则值等于0
monochrome<integer>yes定义在一个单色框架缓冲区中每像素包含的单色原件个数。如果不是单色设备,则值等于0
resolution<resolution>yes定义设备的分辨率。如:96dpi, 300dpi, 118dpcm
scanprogressive | interlaceno定义电视类设备的扫描工序
grid<integer>no用来查询输出设备是否使用栅格或点阵。只有1和0才是有效值,1代表是,0代表否
常用的一些Media Queries代码片段

Bootstrap3.0中的Media Queries片段

/* Extra small devices (phones, less than 768px) */
@media (max-width: 767px)

/* Small devices (tablets, 768px and up) */
@media (min-width: 768px) and (max-width: 991px)

/* Medium devices (desktops, 992px and up) */
@media (min-width: 992px) and (max-width: 1199px)

/* Large devices (large desktops, 1200px and up) */
@media (min-width: 1200px)


判断设备横竖屏

/* portrait */
@media screen and (orientation:portrait)
/* landscape */
@media screen and (orientation:landscape)


Media Queries的兼容性:(来自http://caniuse.com
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  CSS3