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 のプラグインとコンポーネントの違いと使い方のまとめ

推薦する

Linux で MySQL データベースのインポートおよびエクスポート コマンドを実装する方法

1. mysqldump コマンドを使用してデータベースをエクスポートします (このコマンドのパスで...

Vue データ内のプロパティをランダムに変更すると、ビューは更新されますか?

インタビュアー: Vue のソースコードを読んだことはありますか?応募者:あります。インタビュアー:...

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

MySQL 5.7.17 のインストールと設定方法の概要最初のステップは、MySQL公式サイトから...

TypeScript におけるジェネリックケースの詳細な説明

ジェネリックの定義 // 要件 1: ジェネリックは指定されていないデータ型をサポートできるため、渡...

JavaScript の Set データ構造の詳細な説明

目次1. セットとは何か2. セットコンストラクタ2.1) 配列2.2) 文字列2.3) 議論2.4...

Docker コンテナ データ ボリュームの名前付きマウントと匿名マウントの問題

目次コンテナデータボリュームとはコンテナ データ ボリュームが必要なのはなぜですか?使用データボリュ...

Linux でソースインストールされたパッケージを簡単に削除する方法

ステップ1: Stowをインストールするこの例では CentOS を使用しているため、拡張 EPEL...

ウェブページ内の 2 つのボックス モデル (W3C ボックス モデル、IE ボックス モデル)

Web ページ ボックス モデルには 2 種類あります。 1: 標準 W3C ボックス モデル。2:...

MySQL ストアドプロシージャとストアドファンクションの詳細な説明

1 ストアドプロシージャ1.1 ストアドプロシージャとは何かストアド プロシージャは、特定の機能を実...

Vue2 と Vue3 でウォッチ リスナーを使用する方法

watch : データの変更を監視する(特定の値の変更イベント) vue2.x データ(){ 戻る ...

JSはスネークゲームを実装する

目次1. 初期化構造2. 蛇の色のレンダリング3. ヘビの動き4. ヘビの死を判定する方法 ヘビの死...

表示しているページのスナップショットを Baidu が保存できないように設定する方法

今日、Baidu でページを検索したところ、ページが削除されていたため、当然 Baidu スナップシ...

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

1. インストールパッケージMYSQLサービスダウンロードアドレス:MySQL公式サイトからダウンロ...

ウォーターフォールフローレイアウト(無限読み込み)を実現する js

この記事の例では、ウォーターフォールフローレイアウトを実装するためのjsの具体的なコードを参考までに...

Nginx 正規表現の詳細な説明

Nginx (エンジン x) は、高性能な HTTP およびリバース プロキシ サーバーであり、IM...