0Pricing
CSS Academy · レッスン

fr単位とRepeat

frの分数単位とrepeat()関数を使って、柔軟なグリッドトラックを作成します。

「fr単位とRepeat」はCoddyKit上の無料CSS Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCSS Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 CSS Academyコースには全4レッスンが含まれています。

fr単位とは

fr(fraction)単位はCSS Grid専用です。グリッドコンテナ内で、柔軟でないすべてのトラックのサイズを決定した後の残りの空き領域の一部を表します。

frの基本例

利用可能な空間を2等分し、それぞれを受け取る2つの同じ幅の列です。

<div class="grid">
  <div style="background:#4f8cff22;border:1px solid #4f8cff;padding:12px;border-radius:4px;">Column 1 (1fr)</div>
  <div style="background:#ffb84d22;border:1px solid #ffb84d;padding:12px;border-radius:4px;">Column 2 (1fr)</div>
</div>

固定サイズとfrの混在

frの空間は、固定サイズのトラックを差し引いた後に計算されます。

<div class="layout">
  <div style="background:#4f8cff22;border:1px solid #4f8cff;padding:12px;border-radius:4px;">200px sidebar</div>
  <div style="background:#ffb84d22;border:1px solid #ffb84d;padding:12px;border-radius:4px;">1fr column</div>
  <div style="background:#7ee78722;border:1px solid #7ee787;padding:12px;border-radius:4px;">1fr column</div>
</div>

異なる割合のfr

異なるfrの値を指定すると、比例した幅の列が作成されます。

<div class="thirds" style="display:grid;">
  <div style="background:#4f8cff22;border:1px solid #4f8cff;padding:12px;border-radius:4px;">25% (1fr)</div>
  <div style="background:#ffb84d22;border:1px solid #ffb84d;padding:12px;border-radius:4px;">50% (2fr)</div>
  <div style="background:#7ee78722;border:1px solid #7ee787;padding:12px;border-radius:4px;">25% (1fr)</div>
</div>

repeat()関数

repeat()を使うと、同じトラックサイズを繰り返し記述せずに済みます。第1引数は回数、第2引数はトラックサイズです。

<div class="grid" style="display:grid;">
  <div style="background:#4f8cff22;border:1px solid #4f8cff;padding:12px;border-radius:4px;">1</div>
  <div style="background:#ffb84d22;border:1px solid #ffb84d;padding:12px;border-radius:4px;">2</div>
  <div style="background:#7ee78722;border:1px solid #7ee787;padding:12px;border-radius:4px;">3</div>
  <div style="background:#ff6b6b22;border:1px solid #ff6b6b;padding:12px;border-radius:4px;">4</div>
</div>

repeat()と異なるトラックの組み合わせ

トラックのパターンを繰り返すこともできます。

<div class="grid" style="display:grid;">
  <div style="background:#4f8cff22;border:1px solid #4f8cff;padding:12px;border-radius:4px;">1fr</div>
  <div style="background:#ffb84d22;border:1px solid #ffb84d;padding:12px;border-radius:4px;">2fr</div>
  <div style="background:#7ee78722;border:1px solid #7ee787;padding:12px;border-radius:4px;">1fr</div>
  <div style="background:#ff6b6b22;border:1px solid #ff6b6b;padding:12px;border-radius:4px;">2fr</div>
  <div style="background:#b57bff22;border:1px solid #b57bff;padding:12px;border-radius:4px;">1fr</div>
  <div style="background:#3fd0c922;border:1px solid #3fd0c9;padding:12px;border-radius:4px;">2fr</div>
</div>

auto-fill

repeat(auto-fill, ...)は、指定されたサイズでコンテナに収まるだけの列を作成します。末尾の空のトラックは維持されます。

<div class="grid" style="display:grid;">
  <div style="background:#4f8cff22;border:1px solid #4f8cff;padding:12px;border-radius:4px;">200px</div>
  <div style="background:#ffb84d22;border:1px solid #ffb84d;padding:12px;border-radius:4px;">200px</div>
  <div style="background:#7ee78722;border:1px solid #7ee787;padding:12px;border-radius:4px;">200px</div>
</div>

auto-fit

repeat(auto-fit, ...)はauto-fillと似ていますが、空のトラックを折りたたむため、既存の項目がコンテナ全体に広がります。

<div class="grid" style="display:grid;">
  <div style="background:#4f8cff22;border:1px solid #4f8cff;padding:12px;border-radius:4px;">min 200px, grows</div>
  <div style="background:#ffb84d22;border:1px solid #ffb84d;padding:12px;border-radius:4px;">min 200px, grows</div>
</div>

repeat内のminmax()

minmax(min, max)は、トラックサイズの範囲を定義します。auto-fitと組み合わせると、メディアクエリを使わずにレスポンシブなグリッドを作成できます。

<div class="responsive-grid">
  <div style="background:#4f8cff22;border:1px solid #4f8cff;padding:12px;border-radius:4px;">Card A</div>
  <div style="background:#ffb84d22;border:1px solid #ffb84d;padding:12px;border-radius:4px;">Card B</div>
  <div style="background:#7ee78722;border:1px solid #7ee787;padding:12px;border-radius:4px;">Card C</div>
</div>

frとパーセントの違い

パーセントとは異なり、frはギャップの空間を自動的に除外します。24pxのギャップを持つ1fr 1frでは、計算をしなくても2つの列が均等になります。パーセントで同じ結果にするにはcalc(50% - 12px)と指定します。

min-contentとmax-contentを使ったfr

frとコンテンツに基づくサイズ指定を組み合わせて、混在したレイアウトを作成できます。

<div class="grid" style="display:grid;">
  <div style="background:#4f8cff22;border:1px solid #4f8cff;padding:8px;">Label</div>
  <div style="background:#ffb84d22;border:1px solid #ffb84d;padding:8px;">Flexible content area</div>
  <div style="background:#7ee78722;border:1px solid #34c759;padding:8px;">Action</div>
</div>

確認問題

repeat(auto-fit, minmax(200px, 1fr))は何を作成しますか。

まとめ

fr単位は、残りのグリッド空間を比例配分します。repeat()を使うと、同じトラックの宣言を繰り返さずに済みます。強力なrepeat(auto-fit, minmax(250px, 1fr))パターンを使うと、メディアクエリなしで完全にレスポンシブなカードグリッドを作成できます。

よくある質問

「fr単位とRepeat」レッスンは無料ですか?

はい。「fr単位とRepeat」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、CSS Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 CSS Academyコースには全4レッスンが含まれています。

「fr単位とRepeat」で何を学びますか?

frの分数単位とrepeat()関数を使って、柔軟なグリッドトラックを作成します。 ブラウザで直接実行するハンズオンコードでCSS Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

CSS Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのCSS Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。

「fr単位とRepeat」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このCSS Academyレッスンでコードを書いて実行できますか?

はい。すべてのCSS Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. Display Gridとテンプレートの列・行
  2. fr単位とRepeat
  3. Gapとグリッド配置
  4. グリッドテンプレート領域
← CSS Academyに戻る