【CSS】flexboxを使って均等幅で横並びにする方法

flexboxは、ウェブデザインにおいて非常に便利なレイアウトツールです。特に要素を均等幅で横並びにしたい場合、flexboxは簡単で効率的な解決策を提供します。本記事では、flexboxを使って要素を均等幅で横並びにする方法を紹介します。

HTMLの基本構造

まずは、基本的なHTML構造を作成します。以下のコードでは、3つのアイテムを含むコンテナを定義しています。

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>flexbox Equal Width</title>
    <style>
        .container {
            display: flex;
            justify-content: space-between; /* アイテム間のスペースを均等に配置 */
        }
        .item {
            flex: 1; /* 各アイテムが同じ幅になるように設定 */
            margin: 0 10px; /* アイテム間にスペースを追加 */
            background-color: lightgray;
            padding: 10px;
            box-sizing: border-box; /* パディングとボーダーを幅に含める */
        }
        .item:first-child {
            margin-left: 0; /* 最初のアイテムの左マージンをリセット */
        }
        .item:last-child {
            margin-right: 0; /* 最後のアイテムの右マージンをリセット */
        }
    </style>
</head>
<body>
    <div class="container">
        <div class="item">Item 1</div>
        <div class="item">Item 2</div>
        <div class="item">Item 3</div>
    </div>
</body>
</html>
Item 1
Item 2
Item 3

flexboxの基本設定

コンテナの設定

.containerクラスにdisplay: flexを指定することで、コンテナ内のアイテムがflexアイテムとして扱われます。また、justify-content: space-betweenを設定することで、アイテム間のスペースが均等に配置されます。

アイテムの設定

.itemクラスには、flex: 1を指定して各アイテムが均等な幅を持つようにします。さらに、margin: 0 10pxでアイテム間にスペースを追加し、box-sizing: border-boxを設定することで、パディングやボーダーがアイテムの幅に含まれるようにします。

最初と最後のアイテム

.item:first-childと.item:last-childを使用して、最初と最後のアイテムのマージンをリセットします。これにより、コンテナの端とアイテムの端が一致し、全体的に整った見た目になります。

まとめ

flexboxを使用することで、要素を均等幅で横並びにするのは非常に簡単です。上記のコードを使えば、どんなウェブページでもシンプルに美しいレイアウトを実現できます。ぜひ、flexboxを活用して、あなたのデザインをさらに洗練されたものにしましょう。