minmax()

minmax()CSS の関数で、寸法の範囲を min 以上、 max 以下で定義します。 CSS グリッドで使用されます。

試してみましょう

構文

/* <inflexible-breadth>, <track-breadth> 値 */
minmax(200px, 1fr)
minmax(400px, 50%)
minmax(30%, 300px)
minmax(100px, max-content)
minmax(min-content, 400px)
minmax(max-content, auto)
minmax(auto, 300px)
minmax(min-content, auto)

/* <fixed-breadth>, <track-breadth> 値 */
minmax(200px, 1fr)
minmax(30%, 300px)
minmax(400px, 50%)
minmax(50%, min-content)
minmax(300px, max-content)
minmax(200px, auto)

/* <fixed-breadth>, <track-breadth> 値 */
minmax(400px, 50%)
minmax(30%, 300px)
minmax(min-content, 200px)
minmax(max-content, 200px)
minmax(auto, 300px)

min および max の 2 つの引数を取る関数です。

どちらの引数も <length>, <percentage>, <flex>, またはキーワード値 max-content, min-content, auto のうちの一つを取ります。

もし minmax より大きい場合は無視され、 minmax(min,max)min として扱われます。最大値として、 <flex> 値はグリッドトラックのフレックス係数を設定します。それは min としては無効です。

<length>

負ではない寸法。

<percentage>

負ではないパーセント値で、列グリッドトラックのグリッドコンテナーのインライン寸法、および行グリッドトラックのグリッドコンテナーのブロック寸法からの相対値。グリッドコンテナーの寸法がトラックの寸法に依存する場合、 <percentage>auto として扱う必要があります。ユーザーエージェントは、グリッドコンテナーの寸法に対するトラックの固有の寸法の貢献度を調整し、パーセント値を尊重して最小限の量だけトラックの最終的な寸法を増加させることがあります。

<flex>

単位 fr がついた負ではない寸法で、トラックのフレックス係数を指定します。それぞれの <flex> による寸法のトラックは、フレックス係数の割合に従って残りの空間を配分します。

max-content

グリッドトラックを占めるグリッドアイテムの max-content の貢献度の最大値を表します。

min-content

グリッドトラックを占めるグリッドアイテムの min-content の貢献度の最大値を表します。

auto

最大値としては、 max-content と同じです。最小値としては、グリッドトラックを占めるグリッドアイテムの (min-width/min-height で決定する) 最大の最小値を表します。

形式文法

Error: could not find syntax for this item

CSS プロパティ

minmax() 関数は次の中で使用することができます。

CSS

#container {
  display: grid;
  grid-template-columns: minmax(min-content, 300px) minmax(200px, 1fr) 150px;
  grid-gap: 5px;
  box-sizing: border-box;
  height: 200px;
  width: 100%;
  background-color: #8cffa0;
  padding: 10px;
}

#container > div {
  background-color: #8ca0ff;
  padding: 5px;
}

HTML

<div id="container">
  <div>
    Item as wide as the content, but at most 300 pixels.
  </div>
  <div>
    Item with flexible width but a minimum of 200 pixels.
  </div>
  <div>
    Inflexible item of 150 pixels width.
  </div>
</div>

結果

仕様書

Specification
CSS Grid Layout Module Level 2
# valdef-grid-template-columns-minmax

ブラウザーの互換性

BCD tables only load in the browser

関連情報