CSS を使用して固定左列と適応右列の 2 列レイアウトを実現する 4 つの方法

CSS を使用して固定左列と適応右列の 2 列レイアウトを実現する 4 つの方法

1. フロート+オーバーフロー:非表示

このメソッドは主にオーバーフローを通じて BFC をトリガーし、BFC は浮動要素と重複しません。 overflow:hidden を設定しても IE6 ブラウザの haslayout プロパティはトリガーされないため、IE6 ブラウザと互換性を持たせるには zoom:1 を設定する必要があります。具体的なコードは次のとおりです。

<!DOCTYPE html>
<html lang="ja">
<ヘッド>
  <メタ文字セット="UTF-8">
  <meta name="viewport" content="width=デバイス幅、初期スケール=1.0">
  <meta http-equiv="X-UA-compatible" content="ie=edge">
  <title>ドキュメント</title>
  <スタイル>
    。親 {
      margin: 0 auto; // 親コンテナを水平中央に配置する overflow: hidden;
      ズーム: 1;
      最大幅: 1000px;
    }
    。左 {
      フロート: 左;
      右マージン: 20px;
      幅: 200ピクセル;
      背景色: 緑;
    }

    。右 {
      オーバーフロー: 非表示;
      ズーム: 1;
      背景色: 黄色;
    }
  </スタイル>
</head>
<本文>
  <div class="parent"> 
    <div class="left"> 
    <p>左、左、左、左</p> 
    </div> 
    <div class="right"> 
    <p>正しい</p> 
    <p>正しい</p> 
    </div> 
  </div> 
</本文>
</html>

2. フロート: 左 + マージン左

Float は左側の要素をドキュメントフローから除外し、右側の要素を左側の要素と同じ行に表示できるようにします。右側の要素が左側の要素を覆わないように margin-left を設定します。コードは次のとおりです。

<!DOCTYPE html>
<html lang="ja">
<ヘッド>
  <メタ文字セット="UTF-8">
  <meta name="viewport" content="width=デバイス幅、初期スケール=1.0">
  <meta http-equiv="X-UA-compatible" content="ie=edge">
  <title>ドキュメント</title>
  <スタイル>
    。親 {
      マージン: 0 自動;
      最大幅: 1000px;
    }
    .parent::after {
      コンテンツ: '';
      表示: テーブル;
      クリア: 両方;
    }
    。左 {
      フロート: 左;
      幅: 200ピクセル;
      背景色: 緑;
    }

    。右 {
      左マージン: 200px;
      背景色: 黄色;
    }
  </スタイル>
</head>
<本文>
  <div class="parent"> 
    <div class="left"> 
    <p>左、左、左、左</p> 
    </div> 
    <div class="right"> 
    <p>正しい</p> 
    <p>正しい</p>
    <p>正しい</p> 
    </div> 
   </div> 
</本文>
</html>

3. 位置: 絶対 + 左余白

左側に絶対位置を指定し、右側に margin-left を設定する場合、コードは次のようになります。

<!DOCTYPE html>
<html lang="ja">
<ヘッド>
  <メタ文字セット="UTF-8">
  <meta name="viewport" content="width=デバイス幅、初期スケール=1.0">
  <meta http-equiv="X-UA-compatible" content="ie=edge">
  <title>ドキュメント</title>
  <スタイル>
    。親 {
      位置: 相対的;
      マージン: 0 自動;
      最大幅: 1000px;
    }

    。左 {
      位置: 絶対;
      幅: 200ピクセル;
      背景色: 緑;
    }

    。右 {
      左マージン: 200px;
      背景色: 黄色;
    }
  </スタイル>
</head>
<本文>
  <div class="parent"> 
    <div class="left"> 
    <p>左、左、左、左</p> 
    </div> 
    <div class="right"> 
    <p>正しい</p> 
    <p>正しい</p>
    <p>正しい</p> 
    </div> 
   </div> 
</本文>
</html>

4. フレックスレイアウト

フレックスレイアウトでは、2 つの子要素を同じ行に表示できます。左側の幅が固定されていれば、効果が得られます。コードは次のとおりです。

<!DOCTYPE html>
<html lang="ja">

<ヘッド>
  <メタ文字セット="UTF-8">
  <meta name="viewport" content="width=デバイス幅、初期スケール=1.0">
  <meta http-equiv="X-UA-compatible" content="ie=edge">
  <title>ドキュメント</title>
  <スタイル>
    。親 {
      ディスプレイ: フレックス;
      マージン: 0 自動;
      最大幅: 1000px;
    }
    。左 {
      幅: 200ピクセル;
      背景色: 緑;
    }

    。右 {
      左マージン: 20px;
      フレックス: 1;
      背景色: 黄色;
    }
  </スタイル>
</head>

<本文>
  <div class="parent">
    <div class="left">
      <p>左、左、左、左</p>
    </div>
    <div class="right">
      <p>正しい</p>
      <p>正しい</p>
      <p>正しい</p>
    </div>
  </div>
</本文>
</html>

これで、CSS で固定左と適応右の 2 列レイアウトを実現する 4 つの方法についての記事は終了です。CSS で 2 列レイアウトを実現する方法の詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

<<:  Zabbix 監視 Docker アプリケーション構成

>>:  フォーム要素属性の読み取り専用と無効の使用の比較

推薦する

Dockerコンテナの中国語言語パックの設定の問題を解決する

Dockerでdocker search centosを使用する場合docker pull dock...

5分でDockerをインストールする詳細な手順

CentOS に Docker をインストールするには、オペレーティング システムが CentOS ...

Intelli Idea で Tomcat 設定が見つからない問題の解決方法

2日前に新しい会社に入社しました。その会社ではIntelli Ideaを使っています。Eclipse...

クリックして認証コードと認証を切り替えるJavaScript

この記事では、クリックして切り替える認証コードと認証を実装するためのJavaScriptの具体的なコ...

mysql-8.0.17-winx64 のデプロイメント方法

1. 公式サイトからmysql-8.0.17-winx64をダウンロードし、Zipファイル形式を選択...

MySQL でよく使われる連結文のまとめ

はじめに: MySQL では、CONCAT() 関数を使用して複数の文字列を 1 つの文字列に連結し...

Web フォントの読み込みを最適化する方法をご存知ですか?

タイトル通りです!一般的に使用される font-family はブラウザの組み込みフォントを読み込み...

MySQLを閉じることができない問題を解決する方法

mysql が閉じない場合の解決策:コンピュータのタスクバーを右クリックしてタスクマネージャーを開き...

文字列の GBK および GB2312 エンコードとデコードのフロントエンド実装 (概要)

序文プロジェクトを開発しているときに、かなり厄介な問題に遭遇しました。この製品では、判断のためにブラ...

Linux CentOS 6.5 ifconfig が IP を照会できない問題の解決方法

最近、何人かの友人から、仮想マシンに CentOS をインストールした後、ifconfig コマンド...

SpringBoot と Docker の統合の詳細なプロセス

目次1. デモプロジェクト1.1 インターフェースの準備1.2 構成の準備2. Dockerがリモー...

MySQL における単一テーブルと複数テーブル、およびビューと一時テーブルに対する Update と Select の違い

1. テーブルAのデータを使用してMySQLのテーブルBの内容を更新するたとえば、データ テーブル内...

Vueはvue-quill-editorリッチテキストエディタを使用し、画像をサーバーにアップロードします。

目次1. 準備2. グローバルコンポーネント quill-editor を定義する1. テンプレート...

XMLとCSSスタイルの組み合わせ

学生.xml <?xml バージョン="1.0" エンコーディング=&qu...

Baotaパネルを再起動すると、「-ModuleNotFoundError: No module named 'geventwebsocket'」というメッセージが表示されます。

背景:サーバーがFlaskプロジェクトをデプロイし、python3をインストールしたため、再起動時に...