CSS3媒介查询是实现响应式网页设计的核心技术之一,允许开发者根据不同的设备特性和视口尺寸调整页面的样式。响应式设计的目标是确保网页在各种屏幕大小,从移动设备到桌面电脑,都能提供优秀的用户体验。媒介查询正是这一目标得以实现的关键工具。媒介查询的语法使用@media规则,它允许我们定义一系列条件,当这些条件满足时,关联的CSS样式将被应用。例如,以下代码将背景颜色设置为浅蓝色,但只在浏览器宽度不超过1300像素时生效:


@media screen and (max-width: 1300px) {

  body {

    background-color: lightblue;

  }

}

在上面的代码中,screen指定了媒介类型,表示这是针对屏幕显示的样式,而max-width: 1300px则是查询条件,意味着只有当屏幕宽度小于或等于1300像素时,该样式才会生效。在某些情况下,可以省略screen,因为现代网页通常不关注打印样式,仅关注屏幕显示。

媒介查询还支持混合条件,例如:


@media screen and (min-width: 960px) and (max-width: 1200px) {

  body {

    background: yellow;

  }

}

这段代码将在页面宽度介于960像素和1200像素之间时改变背景颜色为黄色。媒介查询可以基于多种参数来设置条件,包括但不限于:

  • widthheight:浏览器的可视宽度和高度。

  • device-widthdevice-height:设备屏幕的实际宽度和高度。

  • orientation:设备当前是横屏(landscape)还是竖屏(portrait)。

  • aspect-ratio:浏览器可视区域的宽高比。

  • device-aspect-ratio:设备屏幕的宽高比。

  • color:检测设备的颜色位数。

  • color-index:检查设备颜色索引表中的颜色数量。

  • monochrome:检测单色帧缓冲区的每个像素的位数。

  • resolution:屏幕或打印机的分辨率。

  • grid:判断输出设备是网格还是位图设备。