CSS マルチカラムレイアウトソリューション

CSS マルチカラムレイアウトソリューション

1. 固定幅+適応型

期待される効果: 左側は固定幅、右側は適応幅 共通コード:
html:

<div class="parent">
    <div class="left">
        <p>左メニュー</p>
    </div>
    <div class="right">
        <li>右の項目1</li>
        <li>右の項目2</li>
        <li>右の項目3</li>
    </div>
</div>

css:

html、本文、p、ul、li {
    マージン: 0;
    パディング: 0;
}
div.left{
    背景: #d2e3e3;
}
div.right {
    背景: #77DBDB;
}

解決策1: フロート

。左 {
    フロート: 左;
    幅: 100ピクセル;
}
。右 {
    margin-left: 100px; // または overflow: hidden
}

解決策2: テーブル

。親 {
    表示: テーブル;
    幅: 100%;
    テーブルレイアウト: 固定; // https://blog.csdn.net/qq_36699230/article/details/80658742
    .左、.右{
        表示: テーブルセル;
    }
    。左 {
        幅: 100ピクセル;
    }
}

オプション3: フレックス

。親 {
    ディスプレイ: フレックス;
    。左 {
        width: 100px; // または flex: 0 0 100px;
    }
    。右 {
        フレックス: 1;
    }
}
  • 固定幅 + 適応レイアウトの 2 つ (またはそれ以上) の列では、上記のソリューションを使用できます。中央の列の設定は、最初の列と一致する必要があります。
  • 可変幅(2列以上)+適応レイアウトでは、上記のソリューションを使用できます。中央の列の設定は、最初の列と一致できます。違いは、特別な幅を設定する必要がないことです。テーブルレイアウトを使用する場合は、次の状況に特に注意する必要があります。
。親 {
    表示: テーブル;
    幅: 100%;
    // table-layout: fixed; を設定するとセルの幅が等しくなるため、ここでは .left、.right は設定されません {
        表示: テーブルセル;
    }
    。左 {
        width: 0.1%; // 幅を最小値に設定します。table-layout: fixed が設定されていないため、幅はコンテンツによって決まります。white-space:nowrap;
    }
}

2. 等幅(2列/複数列)レイアウト

公開コード:
html

<div class="parent">
    <div class="column">
        <p>1</p>
    </div>
    <div class="column">
        <p>2</p>
    </div>
    <div class="column">
        <p>3</p>
    </div>
    <div class="column">
        <p>4</p>
    </div>
</div>

CS

html、本文、div、p {
    マージン: 0;
    パディング: 0;
}
。親 {
    幅: 800ピクセル;
    境界線: 1px ソリッドコーラル;
    。カラム {
        高さ: 30px;
        背景:素焼き。
        p {
            背景: #f0b979;
            高さ: 30px;
        }
    }
}

解決策 1: float (あまりに厳格で、列の数を知る必要があり、境界線がある場合はコンテナーを超えてしまうため、個人的には好きではありません)

。親 {
    左マージン: -20px;
    オーバーフロー: 非表示;
    。カラム {
        フロート: 左;
        幅: 25%;
        左パディング: 20px;
        ボックスのサイズ: 境界線ボックス;
    }
} 


オプション 2: flex (推奨)

。親 {
    ディスプレイ: フレックス;
    。カラム {
        フレックス: 1;
        &+.列 {
            左マージン: 10px;
        }
    }
} 

3. 等高レイアウト

推奨される解決策:

。親 {
    ディスプレイ: フレックス;
}
.左、.右{
    フレックス: 1;
}

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

<<:  Webデザインの経験:ナビゲーションシステムをシンプルにする

>>:  JavaScript イベントバブリング、イベントキャプチャ、イベント委任の詳細な説明

推薦する

backgroundImage を使用して画像カルーセルの切り替えを解決する詳細な説明

単一のDOMノードでカルーセルを実装するbackgroundImage を使用すると、複数の画像を追...

LinuxのCPU負荷とCPU使用率の詳細な説明

CPU 負荷と CPU 使用率これらは両方とも、ある程度、マシンの忙しさを反映できます。 CPU 使...

nginxのデフォルトポートを変更する方法の詳細な説明

まず設定ファイルがどこにあるか調べる nginx.confはどこにありますかこれらのディレクトリを調...

Windows はリモート デスクトップが長時間自動的に切断されるのを防ぎます

Windows リモート デスクトップを使用してサーバーに接続したことがある人なら、リモート デスク...

スケルトン スクリーンの読み込みプレースホルダー アニメーション効果を実装するための CSS + HTML (アニメーション付き)

効果上から下へフェードアウト ソースコードhtml、Angular構文を使用して、必要な構文を取得す...

MySQL マスターライブラリ binlog (master-log) とスレーブライブラリ relay-log 間のコードの詳細な説明

メインライブラリのバイナリログ: # 2420 で #170809 17:16:20 サーバー ID...

LinuxベースのLVMシームレスディスク水平拡張の詳細な説明

環境名前財産CPU 5650 円メモリ4Gディスク20G+4TB この時点で、サーバーにはすでに次の...

非常に詳細な基本的なJavaScript構文ルール

目次01 JavaScript(略称:js) js は 3 つの部分に分かれています。 JavaSc...

動的テーブルを実装するための要素サンプルコード

目次【コード背景】 【コード実装】 #1# -> コード再利用の基本は、再利用可能なコンポーネ...

個人的な意見: デザインについて語る

<br />最も実用的なものを選んで話しましょう。まず、勤務先の都市を慎重に選ぶ必要があ...

Linux dirnameコマンドの具体的な使い方

01. コマンドの概要dirname - ファイル名からディレクトリ以外のサフィックスを削除しますd...

Vueプロジェクトを大画面に適応させる方法の例

レムの簡単な分析まず、remはCSS単位です。pxの固定ピクセル単位と比較すると、remはより柔軟性...

Vue でルーティング遷移効果を実装する 4 つの方法

Vue ルーター トランジションは、Vue プログラムにパーソナライズされたエフェクトをすばやく簡単...

WeChatアプレットがシンプルな計算機機能を実装

この記事では、WeChatアプレットの計算機機能を実装するための具体的なコードを参考までに紹介します...

JavaScriptエラーキャプチャの詳細な説明

目次1. 基本的な使い方とロジック2. 特徴3. エラーオブジェクト4. キャッチアンドスロー戦略の...