max()

Baseline 已廣泛支援

此特性已經十分成熟,可在許多裝置和瀏覽器版本上使用。自 2020 年 7 月以來,它已在各大瀏覽器中可用。

max() CSS 函式允許您將逗號分隔表示式列表中的最大(最正)值設定為 CSS 屬性的值。max() 函式可以在任何允許 <length><frequency><angle><time><percentage><number><integer> 的地方使用。

試一試

width: max(20vw, 400px);
width: max(20vw, 100px);
width: max(5vw, 100px);
<section class="default-example" id="default-example">
  <div class="transition-all" id="example-element">
    <img
      alt="Firefox logo"
      class="logo"
      src="/shared-assets/images/examples/firefox-logo.svg" />
  </div>
</section>

在上面顯示的第一個示例中,寬度將至少為 400px,但如果視口寬度超過 2000px(在這種情況下,1vw 為 20px,因此 20vw 為 400px),則會更寬。此技術使用絕對單位指定屬性的固定最小值,並使用相對單位允許值隨著更大的視口而增長。

語法

css
max(1, 2, 3)
max(1px, 2px, 3px)

引數

max() 函式接受一個或多個逗號分隔的表示式作為其引數,並將最大(最正)表示式值用作其所賦值屬性的值。

表示式可以是數學表示式(使用算術運算子)、字面值或其他表示式,例如 attr(),它們計算為有效的引數型別(如 <length>),或巢狀的 min()max() 函式。

您可以在表示式中為每個值使用不同的單位。如果需要,您還可以使用括號來確定計算順序。

注意

  • 在自動和固定佈局的表格中,涉及表格列、列表、行、行組和單元格寬度和高度百分比的數學表示式可能會被視為指定了 auto
  • 允許將 min() 和其他 max() 函式巢狀為表示式值。表示式是完整的數學表示式,因此您無需使用 calc() 函式本身即可直接進行加法、減法、乘法和除法運算。
  • 表示式可以是結合加法 (+)、減法 (-)、乘法 (*) 和除法 (/) 運算子的值,使用標準的運算子優先順序規則。請確保在 + 和 - 運算子的兩側放置一個空格。表示式中的運算元可以是任何 <length> 語法值。
  • 您可以(並且通常需要)組合 min()max() 值,或在 clamp()calc() 函式中使用 max()

正式語法

<max()> = 
max( <calc-sum># )

<calc-sum> =
<calc-product> [ [ '+' | '-' ] <calc-product> ]*

<calc-product> =
<calc-value> [ [ '*' | / ] <calc-value> ]*

<calc-value> =
<number> |
<dimension> |
<percentage> |
<calc-keyword> |
( <calc-sum> )

<calc-keyword> =
e |
pi |
infinity |
-infinity |
NaN

無障礙

max() 用於控制文字大小時,請確保文字始終足夠大以便閱讀。建議在 max() 中巢狀 min() 函式,並將其第二個值設定為 相對長度單位,該單位始終足夠大以便閱讀。例如:

css
small {
  font-size: max(min(0.5vw, 0.5em), 1rem);
}

這確保了最小尺寸為 1rem,並且文字大小在頁面縮放時也能隨之縮放。

示例

設定字型的最小尺寸

max() 的另一個用例是允許字型大小增長,同時確保它至少是一個最小尺寸,從而實現響應式字型大小並確保可讀性。

我們來看一些 CSS

css
h1 {
  font-size: 2rem;
}
h1.responsive {
  font-size: max(4vw, 2em, 2rem);
}

字型大小至少為 2rems,或頁面預設字型大小的兩倍。這確保了它的可讀性和可訪問性。

html
<h1>This text is always legible, but doesn't change size</h1>
<h1 class="responsive">
  This text is always legible, and is responsive, to a point
</h1>

max() 函式視為找到屬性允許的最小值。

規範

規範
CSS 值和單位模組第 4 級
# calc-notation

瀏覽器相容性

另見