CSS3规范分成很多模块,媒体查询只是其中一个模块。利用媒体查询,可以根据设备的能力应用特定的CSS样式。例如,可以根据视口宽度、屏幕宽高比和朝向(水平还是垂直)等,只用几行CSS代码就改变内容的显示方式。媒体查询得到了广泛实现。除了IE8及以下版本外,几乎所有浏览器都支持它。
2017年9月,W3C发布了媒体查询(Media Query Level 4,http://www.w3.org/TR/mediaqueries-4/)候选推荐标准规范,它扩展了已经发布的媒体查询的功能。该规范用于CSS的@media规则,可以为文档设定特定条件的样式,也可用于HTML、JavaScript等语言中。4级媒体查询尚未得到广泛支持,而且规范本身还有可能变动。不过,了解未来几年可能有什么新特性可以使用还是有必要的。
CSS3媒体查询模块规范的官网网址:http://www.w3.org/TR/css3-mediaqueries/。访问规范,可以看到官方对媒体查询下的定义:
媒体查询包含媒体类型和零个或多个检测媒体特性的表达式。width、height和color都是可用于媒体查询的特性。使用媒体查询,可以不必修改内容本身,而让网页适配不同的设备。
如果没有媒体查询,仅使用CSS是无法修改网页外观的。这个模块让我们可以提前编写出适应很多不可预测因素的CSS规则,例如,屏幕方向水平或垂直、视口或大或小等。
弹性布局虽然可以让设计适应较多场景,也包括某些尺寸的屏幕,但有时候确实不够用,因为我们还需要对布局进行更细致的调整。媒体查询让这一切成为可能,它就相当于CSS中基本的条件逻辑。