キーテイクアウト
これにより、コードがより効率的かつ読みやすくなります。そして、これは単なる簡単な例です。以下に示すように、Repeat()関数でできることはもっとあります。
次のペンは、上記のコードの簡単なデモを示しています。 10個のdivを含む記事は、5つの列に編成されています。ペンを参照してください CSSグリッドリピート():SitePointによる5つの簡単な列(@SitePoint) Codepenで。
上記のデモでは、CSSギャッププロパティを使用しています。グリッドレイアウトの詳細については、CSSグリッドの初心者向けガイドをご覧ください。
Repeat()関数のオプション
数(1、2、3など)
FR、PX、EM、%、CH
などのユニットを使用して、長さの値
minコンテンツキーワード6列グリッドのこの「ロングハンド」コードを検討してください。
これにより、ブラウザがパターンを3回繰り返すことをブラウザに指示します。1Fr幅の列1Fの後、幅2Frの列が続きます。以下のデモは、これを動作していることを示しています。
ペンを参照してください CSSグリッドリピート():SitePointによる列パターン(@SitePoint) Codepenで。
<span>grid-template-columns: 1fr 1fr 1fr 1fr 1fr; </span>
repeat()
で長さの値を使用します<span>grid-template-columns: repeat(5, 1fr); </span>
たとえば、
3つの列トラックを設定して、120ピクセルの幅を与えましょう。<span>grid-template-columns: 1fr 1fr 1fr 1fr 1fr; </span>
次のCodepenデモには、結果が表示されます。
ペンを参照してください CSSグリッドリピート():SitePointによる長さの値(@SitePoint) Codepenで。
列の固定幅は、容器が狭すぎても変更されません。上記のペンのブラウザ幅で遊んでみてください。また、5EM、10CH、15%などの他の長さのユニットにピクセルを交換して、それらの効果を確認してみてください。
repeat()ペンを参照してください CSSグリッドリピート():SitePointによるMin-Content(@SitePoint) Codepenで。
<span>grid-template-columns: repeat(5, 1fr); </span>
repeat()で最大コンテンツキーワードを使用します
ペンを参照してください CSSグリッドリピート():SitePointによるMax-Content(@SitePoint) Codepenで。
<span>article { </span> <span>grid-template-columns: 1fr 2fr 1fr 2fr 1fr 2fr; </span><span>} </span>
repeat()
で自動キーワードを使用します repeat()で使用すると、AutoキーワードはMax Contentで最大になり、Min ContentでMinsが出ます。
ここには、6つの列があります。各列には、オートの幅に奇数の1つのセットがあります。以下のCodepenデモでは、十分なスペースがある場合、最大コンテンツで「自動」テキストが最大になり、1FR Divsが残りのスペースを共有していることがわかります。ブラウザが狭くなると、自動列が最小コンテンツのしきい値に達するまで狭くなり続けます。
ペンを参照してください CSSグリッドリピート():SitePointによる自動(@SitePoint) Codepenで。<span>article { </span> <span>grid-template-columns: repeat(3, 1fr 2fr); </span><span>} </span>
注:Autoは、他の値と混合した場合に上記のように振る舞うようです。それだけで - 繰り返し(3、auto)など - 繰り返しを設定しているように動作します(3、1fr)。 minmax()関数を使用してrepeat()を使用します
minmax()関数は、コンマで区切られた最小値と最大値の2つの引数を使用します。したがって、minmax()を使用すると、柔軟な環境でトラックに可能なサイズの範囲を設定できます。 たとえば、次のコードは5つの列を設定します。
ペンを参照してください css grid repeat():minmax()by sitepoint(@sitepoint) Codepenで。
これは、最小幅の60pxに達するまでうまく機能します。その時点以降、コンテンツはコンテナからたむろし始めます。すぐにより良い結果を得る方法が見られます。
min()またはmax()
でminmax()関数を使用します<span>grid-template-columns: 1fr 1fr 1fr 1fr 1fr; </span>
たとえば:
ペンを参照してください css grid repeat():minmax()with min()by sitepoint(@sitepoint)with min()function Codepenで。
上記のコードは5つの列を設定します。幅広いブラウザでは、5つの列がすべて1FRで等しく間隔が取られます。狭いデバイスでは、列が狭くなり狭くなります。 60pxと8VWの低い方にヒットすると、縮小を停止します。そのため、狭い画面でコンテナからぶら下がっているコンテンツで自分自身を見つけることができます。さらに完全に応答するようになることがさらにあります。
minmax()、min()、およびmax()の組み合わせをこの段階で少し圧倒している場合は、自動フィットとオートに会ったときに本当の力が見られるので、そこに垂れ下がっています。塗りつぶし。
Fit-Content()関数は、トラックが成長できる最大サイズを表す単一の引数を取ります。したがって、トラックはその時点まで柔軟になります。 FIT-CONTENT()は、FR、PX、EM、%、Ch。などの長さの値を取得できます。 たとえば、3つの列とフィットコンテンツ(120px)を設定すると、列の幅は120pxの幅が並ぶまで応答します。
ペンを参照してください css grid repeat():fit-content()by sitepoint(@sitepoint) Codepenで。
<span>grid-template-columns: 1fr 1fr 1fr 1fr 1fr; </span>
を使用して名前付きの行を使用します グリッドレイアウトでは、トラックの周りの垂直および水平線にデフォルトで番号が付けられています。 Grid-Template-ColumnsとGrid-Template-rowsを設定すると、それらの行に名前を付けることができます。これにより、グリッドにコンテンツを配置するときにこれらの行をターゲットにしやすくなります(入り込んでグリッドラインをカウントする必要はありません)。
簡単な例です。名前付きの行は、四角い括弧内のビットです([]):repeat()関数内で名前付き行を使用することもできます:
<span>grid-template-columns: repeat(5, 1fr); </span>
<span>article { </span> <span>grid-template-columns: 1fr 2fr 1fr 2fr 1fr 2fr; </span><span>} </span>
グリッドコラムで最初の陰線をターゲットにすることができます:yin
2番目のYinラインから3行にまたがる列を設定できます。グリッドコラム:yin 2 /スパン3
Auto-FitおよびAuto-Fillキーワードは、固定数のトラックを設定することに代わるものです。彼らは、ブラウザに特定のスペースにできるだけ多くのトラックを適合させるように指示します。たとえば、
<span>grid-template-columns: 1fr 1fr 1fr 1fr 1fr; </span>
ペンを参照してください CSSグリッドリピート():SitePointによるオートフィットと自動充填(@SitePoint) Codepenで。
上記のデモでは、divは150pxの幅に設定されており、あるラインに収まらないものは次の行にドロップします。オートフィットをオートフィルに変更しても、違いは見られません。これらの条件下では、両方とも同じことをするからです。それらの違いは、特別な状況でのみ明らかになります。この時点で、自動充填に自動フィットしているのは
OK auto-fit/auto-fill、minmax()およびmin()を使用してrepeat()を使用します repeat()にまだ恋をしていない場合、repeat()とauto-fit、minmax()とmin()の組み合わせは、きっとキューピッドの矢印が頑固な心を突き刺します。それらの組み合わせにより、メディアクエリを使用せずに真にレスポンシブなレイアウトを作成できます。 repeat()この例では、minmax()は最小列幅の200pxと最大1FRを設定します。以下のデモは、これを動作していることを示しています。
<span>grid-template-columns: repeat(5, 1fr); </span>
繰り返しますが、オートフィットをオートフィルに交換すると、同じ動作が表示されます。 ただし、この例には1つの制限があります。ブラウザウィンドウを十分に狭くすると、1つの列が表示されます。その列が200pxより狭くなると、Divはコンテナのオーバーフローを開始します。
このオーバーフローがミックス()をミックスに入れることで発生するのを防ぐことができるので、次のことを見てみましょう。
auto-fit、minmax()、min()を使用してrepeat()
<span>grid-template-columns: 1fr 1fr 1fr 1fr 1fr; </span>
auto-fit、minmax()およびmin()を使用してrepeat()を使用するより現実的なデモについては、レスポンシブイメージギャラリーの次のCodepenデモをご覧ください。このデモでは、CSSアスペクト比の使用方法についてカバーしたアスペクト比プロパティも使用しています。
ペンを参照してください SitePointによるアスペクト比を使用したレスポンシブイメージギャラリー(@SitePoint) Codepenで。
自動フィットとオートフィルの違いを理解
下の画像は、自動充填で得られるものを示しています
<span>grid-template-columns: repeat(5, 1fr); </span>
ブラウザは、コンテナに収まる
自動フィットに切り替えましょう:
以下の画像は、自動フィットで得られるものを示しています。
<span>article { </span> <span>grid-template-columns: 1fr 2fr 1fr 2fr 1fr 2fr; </span><span>} </span>
それで、私たちはこのすべてを何を作るのでしょうか?現実的には、すべてではないにしても、ほとんどの状況では、コンテンツに使用できるときにスペースを空にしておくことを望んでいないため、自動フィットを使用したいと思うでしょう。
このCodepenデモで自動フィットと自動充填を楽しむことができます。オートフィットをオートフィルに変更して、ブラウザを広げて契約して、両方がどのように振る舞うかを確認してください。
repeat()トラック引数にはいくつかの組み合わせが許可されていません。たとえば、Repeat(Auto-Fill、1FR)のようなものを使用することはできません。 Minmax(100PX、1FR)など、どこかに固定された測定が必要なため、自動フィットと柔軟なユニットが一緒にプレイできません。
見たように、minmax()関数にはネストされたmin()またはmax()関数のいずれかを持つことができます。また、2つではありませんが、2つではありません。たとえば、Minmax(50px、max-content)を使用できますが、minmax(min-content、max-content)ではありません(正直なところ、これらの組み合わせのいくつかは
doとにかく動作しているようです)。 repeat()表記はネストできません。したがって、繰り返し()内に繰り返し()を持つことはできません。しかし、繰り返し(5、1FR)100pxリピート(2、50px)など、繰り返し()関数を並べて繰り返すことができます。
ラッピングRepeat()関数は、グリッド列と行の繰り返しパターンを効率的にレイアウトするための非常に便利なツールです。単一のコードでメディアクエリなしで完全にレスポンシブなレイアウトを作成するために使用できます。
非常に便利になるので、そのコードのラインをバックポケットに必ず保管してください。
繰り返し()関数の詳細については、
<span>grid-template-columns: 1fr 1fr 1fr 1fr 1fr; </span>
mdn
の繰り返し()ページ
W3Cグリッドレイアウトモジュール仕様の繰り返し()セクションはい、繰り返し関数はminmax関数で使用できます。 MinMax関数は、最小値以上のサイズ範囲を定義し、最大値以下を定義します。たとえば、「Grid-Template-Columns:Repeat(3、Minmax(100px、1FR));」それぞれが100pxの最小幅と最大幅1FRを持つ3つの列を持つグリッドを作成します。負の数の繰り返し関数、ブラウザはルールを無視し、グリッドは作成されません。繰り返し関数は、繰り返しの数として正の整数のみを受け入れます。
Grid-Template-rowsプロパティでリピート関数を使用できますか?グリッドテンプレート列プロパティとともに使用して、グリッド行のサイズを定義します。構文は、Grid-Template-Columnsと同じです。たとえば、「グリッドテンプレート列:繰り返し(3、100px);」高さ100pxそれぞれ3列のグリッドを作成します。
.grid {
.grid {
grid-template-columns:繰り返し(4、1fr);以上がCSSグリッドリピート()関数の使用方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。