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 イベントバブリング、イベントキャプチャ、イベント委任の詳細な説明

推薦する

vue-video-player を使用してライブ放送を実現する方法

目次1. vue-video-playerをインストールする2. vue-video-playerを...

Vue 要素と Nuxt の使用に関するヒントを共有する

1. 要素時間選択提出フォーマット変換例えば 2018年9月7日金曜日 00:00:00 GMT+0...

MySQL 5.7.23 のインストールと設定方法のグラフィックチュートリアル

この記事では、参考として MySQL 5.7.23 のインストール チュートリアルを記録します。 1...

JavaScript キャンバスで動的な点と線の効果を実現

この記事では、動的な点と線の効果を実現するためのJavaScriptキャンバスの具体的なコードを参考...

MySQL における「:=」と「=」の違いの簡単な分析

=設定および更新の場合にのみ、:= と同じ効果、つまり代入効果があり、それ以外の場合は等号の効果があ...

MySQLインスタンスが起動できない問題の分析と解決

目次序文シナリオ分析要約する序文数日前、友人がWeChatで私に連絡してきて、マシンがダウンタイムか...

Vue カプセル化 TabBar コンポーネントの完全なステップ記録

目次実装のアイデア:ステップ 1: TabBar と TabBarItem のコンポーネント カプセ...

Vueのドラッグ可能なコンポーネントであるVue Smooth DnDの使用方法の詳細な説明

目次紹介とデモAPI: コンテナ財産ライフサイクルコールバックイベントAPI: ドラッグ可能実際の戦...

vue-element-admin プロジェクトのインポートとエクスポートの実装

vue-element-admin インポートコンポーネントのカプセル化テンプレートとスタイルまず、...

MySQL 5.5 のインストールと設定のグラフィックチュートリアル

MySQL 5.5 のインストールと構成のチュートリアル ノートを整理し、全員と共有します。 1.公...

HTMLでアンカーの位置を設定するためのいくつかの一般的な方法

HTML でアンカーの位置を設定する方法はいくつかあるので、ここで紹介します。 1. ID ポジショ...

nginx における proxy_pass のさまざまな使用法の詳細な説明

目次プロキシ転送ルール最初のもの: 2番目のタイプ: 3番目のタイプ: 4番目のタイプ: 5番目:プ...

MySQLデスクトップツールSQLyogのリソースとアクティベーション方法は、白黒のコマンドラインに別れを告げます

では、早速リソースについて見ていきましょう。 123WORDPRESS.COM ダウンロードSQLy...

mysql5.7.22 ダウンロードプロセス図

1. 公式ウェブサイト www.mysql.com にアクセスし、ダウンロードを選択します。 2. ...