0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【フロントエンド1000本ノック】0060_auto-fitとauto-fillの違いを説明し、repeat()と組み合わせてコンテナ幅に応じて列数が自動で変わるグリッドを作成せよ。

Posted at

この記事は人間が書きました

はじめに

こんにちは、赤神です!
この記事は、「1000本ノック」という取り組みの中のフロントエンドのための課題の1つです。

「1000本ノックとは」
https://qiita.com/sora_akagami/items/c8da4296dea3823376ca

auto-fitauto-fill の違い

auto-fitauto-fill は、repeat() 関数の中で使うキーワードです。「コンテナの幅に収まるだけ、自動的に列を詰めて(fill) / 合わせて(fit)ください」という命令になります。

この2つのキーワードは同じように振る舞いますが、アイテム数が少ないときにだけ違いが現れます。

auto-fill(詰める)
アイテム数が少なくても、利用可能なスペースに空の列をどんどん詰めていきます。そのため、アイテムは指定された最小幅を保ち、伸びません。

auto-fit(合わせる)
空の列は作らず、既存のアイテムをコンテナの幅に合わせて引き伸ばします。

ほとんどの場合、アイテムをコンテナ幅いっぱいに広げたいので、auto-fit の方が実用的でよく使われるそうです。

auto-fitminmax() の組み合わせ技

この auto-fitminmax() を組み合わせることで、メディアクエリを使わずに、CSS 一行でレスポンシブなグリッドレイアウトが完成します。

例えば、grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); は、「コンテナの中に、最低250pxの幅を持つアイテムを入れるだけ並べてください。余ったスペースは、全てのアイテムで均等に分け合って伸びてください」という意味になります。

作成したコード

index.html
<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>フロントエンド1000本ノック 0060</title>
</head>
<body style="display: flex; flex-direction: column; min-height: 100vh;">

  <header style="display: flex; justify-content: space-between; align-items: center;">
    <div>
      <a href="/">
        <img src="img/logo.png" alt="フロントエンド1000本ノック">
      </a>
    </div>
  </header>

  <div style="display: grid; gap: 16px; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));">
    <div>1</div>
    <div>2</div>
    <div>3</div>
    <div>4</div>
    <div>5</div>
    <div>6</div>
  </div>

  <footer>
    <p>Copyright 2025</p>
    <p>フロントエンド1000本ノック</p>
  </footer>

</body>
</html>
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?