新的範圍媒體查詢語法

瞭解這個新語法如何簡化媒體查詢作業。

媒體查詢啟用了回應式設計,且使用媒體查詢時,約有 80% 的網站會使用範圍功能測試可視區域的上下限。媒體查詢層級 4 的規格包含這類範圍查詢的改良語法。

瀏覽器支援

  • Chrome:104。
  • Edge:104。
  • Firefox:102。
  • Safari:16.4。

資料來源

以下範例說明如何簡化查詢。

一般媒體查詢測試以最小可視區域寬度來說,如下所示:

@media (min-width: 400px) {
  // Styles for viewports with a width of 400 pixels or greater.
}

新的語法允許使用比較運算子:

@media (width >= 400px) {
  // Styles for viewports with a width of 400 pixels or greater.
}

測試最大寬度:

@media (max-width: 30em) {
  // Styles for viewports with a width of 30em or less.
}

接著使用等級 4 語法的版本:

@media (width <= 30em) {
  // Styles for viewports with a width of 30em or less.
}

這個語法可以簡化查詢,特別是在測試兩個寬度之間測試時。在以下範例中,媒體查詢會測試寬度下限為 400 像素、寬度上限 600 像素的可視區域。

@media (min-width: 400px) and (max-width: 600px) {
  // Styles for viewports between 400px and 600px.
}

這可在新的語法中重新編寫,如下所示:

@media (400px <= width <= 600px )  {
  // Styles for viewports between 400px and 600px.
}

您正在測試的功能 (在此案例中為 width) 會在兩個值之間進行。

除了讓媒體查詢變得更加冗長外,新語法還可提升準確率。min-max- 查詢包含指定的值,例如 min-width: 400px 會測試寬度 400 像素以上。新的語法可讓您更明確地判斷意思,避免查詢發生衝突。

如要使用新的範圍語法,一併計算尚未實際執行過的瀏覽器,您可以在 PostCSS 外掛程式中將新的語法重寫為樣式表中的舊版。