CSS3 のフレックスレイアウト幅の無効性の解決策

CSS3 のフレックスレイアウト幅の無効性の解決策

2 列レイアウトはプロジェクトでよく使用されます。この効果を実現する方法はたくさんあります。

ここに画像の説明を挿入

しかし、最も便利なのは flex です。外側の親要素に display:flex を設定し、子要素の幅を適応するように設定します。
flex-grow:1; と、固定幅を設定する別の方法でこれを実現できます。1 つは固定で、もう 1 つは適応型です。

具体的なコードは次のとおりです。

<!DOCTYPE html>
<html lang="ja">
<ヘッド>
  <メタ文字セット="UTF-8">
  <meta name="viewport" content="width=デバイス幅、初期スケール=1.0">
  <title>フレックス幅は有効になりません</title>
</head>
<本文>
  <スタイル>
    /* スタイルをリセット */
    * {
      マージン: 0px;
      パディング: 0px;
    }
    /* 外側のレイヤーの表示をフレックスに設定する */
    。箱 {
      ディスプレイ: フレックス;
      高さ: 100px;
      幅: 100%;
    }
    /* 左側適応型*/
    .box .left {
      フレックス成長: 1;
      背景: 赤;
    }
    /* 右側を固定 */
    .box .right {
      幅: 200ピクセル;
      背景: 黄色;
    }
  </スタイル>
  <!-- 外側のボックス -->
  <div class="box">
    <!-- 左 -->
    <div class="left"></div>
    <!-- 右側 -->
    <div class="right"></div>
  </div>
</本文>
</html>

このコードを実行した結果は、上のスクリーンショットの通りですが、このコードには小さなバグがあります。つまり、左側(アダプティブ側)にコンテンツがあり、コンテンツの幅が左側の幅を超えると、右側(固定幅)が小さく圧縮され、指定した固定幅(例では 200px)が有効にならないか、スクロールバーが表示されることがわかります。
左側に少しコンテンツを追加して、幅を超えさせます。

   /* コンテンツ スタイルを超えています */
    .box .left .content {
      幅: 1000ピクセル;
    }
  <!-- 左 -->
    <div class="left">
      <!-- コンテンツ超過 -->
      <div class="content"></div>
    </div>

実行結果:

ここに画像の説明を挿入

コンテンツが制限を超え、スクロールバーが表示されます。この問題は簡単に解決できます。左側にオーバーフローの非表示属性を追加するだけです。

  /* 左側適応型*/
    .box .left {
      フレックス成長: 1;
      背景: 赤;
      オーバーフロー: 非表示;
    } 

ここに画像の説明を挿入

しかし、再び問題が発生します。右側に表示されますが、幅が小さくなり、200 未満になります。
この問題は実はとても簡単です。右側の div に min-width:200px; を追加するだけで完璧になります。

/* 右側を固定 */
    .box .right {
      幅: 200ピクセル;
      最小幅: 200px;
      背景: 黄色;
    } 

ここに画像の説明を挿入

こうすることで、どの画面を使用しても、どのようにドラッグ アンド ドロップしても、完全に互換性が保たれます。 。 。

CSS3 でフレックス レイアウトの幅が反映されない問題の解決方法についての記事はこれで終わりです。フレックス レイアウトの幅が反映されない問題の詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

<<:  Windows Server 2008R2、2012、2016、2019 の違い

>>:  Vue のプラグインとコンポーネントの違いと使い方のまとめ

推薦する

MySQL マスター/スレーブ データベース同期構成と一般的なエラー

アクセス回数が増えると、時間のかかるデータベース読み取り操作では、データベースへの負荷を軽減するため...

Docker で MySQL マスター スレーブ レプリケーションを実装するためのサンプル コード

目次1. 概要1. 原則2. 実装3. スレーブインスタンスを作成する4. マスタースレーブ構成要約...

Linux でファイルを削除するときに「操作は許可されていません」というプロンプトが表示される場合の対処方法

同僚からよく聞かれるのですが、ファイル/ディレクトリを削除すると「操作は許可されていません」というエ...

CSS 透明ボーダー背景クリップマジック

この記事では、CSSの透明な境界線の背景クリップの素晴らしい使い方を主に紹介し、みんなと共有し、自分...

スクロールバーがスペースを占有することで発生するバグを修正しました

背景このバグは滾動條占據空間ことで発生していました。いくつかの情報を確認して、ようやく解決しました。...

MySQLは集計関数を使用して単一のテーブルをクエリします

集計関数データセットに作用し、そのデータセットの値を返します。 count: 統計結果のレコード数。...

適応レイアウトの処理について(フロートとマージンネガティブマージンを使用)

適応型レイアウトは、実際のアプリケーションでますます一般的になっています。今日は、主にフローティング...

Centos7 サーバーで jar パッケージ プロジェクトを開始する最良の方法

序文Linux 上で jar パッケージを実行する方法は誰もが知っています。なぜ別々に話したいのでし...

Node.jsはMySQLデータベースの実戦記録を追加、削除、変更、チェックします

目次プロジェクトでデータベースを操作する3つのステップデータベースを操作するための具体的な手順1: ...

CSSスプライトの応用の詳細な説明

CSS Sprite は、CSS スプライトとも呼ばれ、画像結合技術です。この方法は、複数の小さなア...

Windows 上で Nginx+Tomcat クラスタを実装するプロセスの分析

導入: Nginx (エンジン エックスと同じ発音) は、BSD のようなプロトコルに基づいてリリー...

MySQLデータベースを作成し、中国語の文字をサポートする方法

まずMySQLの公式ドキュメントを見てみましょう: 5.7 {データベース | スキーマ} を作成 ...

CSS でフローティングにより親要素の高さが崩れる問題を解決するいくつかの方法

1. ドキュメントフローとフローティング1. ドキュメントフローとは何ですか? HTML では、ドキ...

ブラウザがクロージャをどのように認識するかについて詳しく説明します

目次序文クロージャの紹介メモリのゴミを識別する方法クロージャのメモリ表現結論序文クロージャは、Jav...

Windows 10 で MySql の解凍バージョンをインストールして構成する方法のチュートリアル

Windows 10 で MySql データベースの解凍バージョンをインストールするステップ 1: ...