媒体查询增强了媒体类型方法,允许根据特定的设备特性应用样式,可以使网站呈现的样式适应不同的屏幕尺寸等。媒体查询包含一个媒体类型和0个或多个表述媒体特征的表达式。媒体查询可以用在style中或者样式表中,用在style中的语法如下:
<style> @media logic type and (feature: value) { /* 目标CSS样式规则写在这里 */ } </style>例如:
<style> @media screen and (max-width: 600px) { .facet_sidebar { display: none; } } </style>也可以用在指向外部样式表的链接:
<link rel="stylesheet" media="logic type and (feature: value)" href="your-stylesheet.css" />例如:
<link rel="stylesheet" media="(max-width: 800px)" href="example.css" />当一个媒体查询为true,对应的样式表或样式规则将被应用。
@media (min-width: 700px) { ... }如果你仅希望应用这个样式到横向模式,你能用这样做:
@media (min-width: 700px) and (orientation: landscape) { ... }现在上面的媒体查询将仅在宽度大于等于700px,且处理横向模式时才返回true。如果你希望这个样式仅应用到媒体类型screen,你能再添加一个and操作:
@media screen and (min-width: 700px) and (orientation: landscape) { ... }现在,上面的媒体查询仅应用到媒体类型为screen,宽度大于等于700px,且显示在横向模式上。
@media (min-width: 700px), handheld and (orientation: landscape) { ... }如果我使用的设备的屏幕宽度大于700px,媒体查询将返回true,样式将被运用。如果我使用的是横向的便捷式设备,第一个媒体查询返回false,但第二个媒体查询将返回true,样式任将被使用。
@media not all and (monochrome) { ... }这个媒体查询将被理解为:
@media not (all and (monochrome)) { ... }而当使用逗号分隔列表时:
@media not screen and (color), print and (color) { ... }将被理解为:
@media (not (screen and (color))), print and (color) { ... }
<link rel="stylesheet" media="only screen and (color)" href="example.css" />
@media all and (color) { ... }应用样式到每个颜色组件至少4比特的设备
@media all and (min-color: 4) { ... }
@media all and (color-index) { ... }应用样式表到索引化颜色的设备,且至少256种颜色
<link rel="stylesheet" media="all and (min-color-index: 256)" href="http://foo.bar.com/stylesheet.css" />
@media screen and (min-aspect-ratio: 1/1) { ... }
@media screen and (device-aspect-ratio: 16/9), screen and (device-aspect-ratio: 16/10) { ... }当设备长宽比为16:9或者16:10时应用该样式
<link rel="stylesheet" media="screen and (max-device-height: 799px)" />
<link rel="stylesheet" media="screen and (max-device-width: 799px)" />
@media all and (display-mode: fullscreen) { body { margin: 0; border: 5px solid black; } }
@media handheld and (grid) and (max-width: 15em) { ... }
@media all and (monochrome) { ... }应用样式到每像素至少8比特的单色设备:
@media all and (min-monochrome: 8) { ... }
@media all and (orientation: portrait) { ... }
@media print and (min-resolution: 300dpi) { ... }
@media tv and (scan: progressive) { ... }
@media handheld and (min-width: 20em), screen and (min-width: 20em) { ... }下面是使用样式到宽度大于8.5英寸的打印设备:
<link rel="stylesheet" media="print and (min-width: 8.5in)" href="http://foo.com/mystyle.css" />下面是指定样式到屏幕宽度位于500px到800px之间的设备:
@media screen and (min-width: 500px) and (max-width: 800px) { ... }