CSS 媒体查询(media query)是响应式设计的关键组成部分,你可以根据各种设备特征和参数是否存在以及对应的值是否满足条件来应用不同的 CSS 样式。
媒体类型(media type)描述设备的一般类别:
<html>
<style>
p {
color: red;
}
/* 检测到打印机时触发 */
@media print {
p {
color: black;
}
}
</style>
<p>hello world</p>
</html>
媒体特性(media feature)描述了用户代理、输出设备或环境的具体特征。用于测试这些特征是否存在以及它们的值是否满足条件,每个媒体特性表达式都必须用括号括起来。
<html>
<style>
p {
color: red;
}
/* 视口宽度为500px时触发 */
@media (width: 500px) {
p {
color: black;
}
}
</style>
<p>hello world</p>
</html>
完整的媒体特征可以访问:MDN的媒体查询
逻辑运算符not
、and
、only
和 or
可用于联合构造复杂的媒体查询,还可以通过用逗号分隔多个媒体查询,将它们组合为一个规则。
,
:逗号分隔列表中的每个查询都是分开的,列表的行为类似于逻辑或(or)运算符。,
运算符。<html>
<style>
.container {
height: 500px;
width: 500px;
background-color: red;
}
@media only screen and (min-width: 600px) and (max-width: 800px) {
.container {
height: 200px;
width: 200px;
background-color: blue;
}
}
</style>
<div class="container"></div>
</html>
上面的代码可以用一种新的范围语法来实现
<html>
<style>
.container {
height: 500px;
width: 500px;
background-color: red;
}
@media only screen and (600px <= width <= 800px) {
.container {
height: 200px;
width: 200px;
background-color: blue;
}
}
</style>
<div class="container"></div>
</html>
ps:运行代码,通过调整浏览器的窗口大小,观察其变化