minmax()
minmax()
は CSS の関数で、寸法の範囲を min 以上、 max 以下で定義します。 CSS グリッドで使用されます。
The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.
構文
/* <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)
/* <inflexible-breadth>, <fixed-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
のうちの一つを取ります。
もし min が max より大きい場合は無視され、 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
で決定する) 最大の最小値を表します。
形式文法
minmax( [ <length> | <percentage> | min-content | max-content | auto ] , [ <length> | <percentage> | <flex> | min-content | max-content | auto ] )
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>
結果
仕様書
仕様書 | 状態 | 備考 |
---|---|---|
CSS Grid Layout minmax() の定義 |
勧告候補 | 初回定義 |
ブラウザーの互換性
BCD tables only load in the browser
関連情報
- グリッドレイアウトガイド: グリッドレイアウトの基本概念 - minmax() によるトラックの寸法制御
- CSS グリッド、論理値、書字方向
-
Video tutorial: Introducing minmax()