フレックスレイアウトとposition:absolute/fixedの競合の詳細な説明

フレックスレイアウトとposition:absolute/fixedの競合の詳細な説明

以前、プロジェクトを開発しているときに、flex レイアウトと position:absolute/fixed の競合という問題に遭遇しました。その後、私は解決策を思いつきました。今日はそれを皆さんと共有したいと思います。

プロジェクトの実践:

ここで、上部にナビゲーション バーを作成し、それを上部に固定するために fixed を使用し、内部スタイルを設定するために Flexible Box レイアウトを使用したいのですが、Flexible Box レイアウトが失敗したことがわかりました。

HTML コードは次のとおりです。

<ul>
    <li>協会について</li>
    <li>協会憲章</li>
    <li>協会構造</li>
    <li>ダウンロード</li>
</ul>

CSS コードは次のとおりです。

ul {
	位置: 固定;
  	ディスプレイ: フレックス;
    コンテンツの両端揃え: スペースの間;
    マージン: 0 15px;
    背景: ピンク;
}
li {
    フレックス: 1;
    リストスタイル: なし;
    高さ: 100px;
    行の高さ: 100px;
    テキスト配置: 中央;
    フォントサイズ: 30px;
    境界線: 1px 実線 #fff;
}

効果は以下のとおりです。


フレキシブル ボックス レイアウトが失敗したことがわかりました。この問題をどのように解決すればよいでしょうか?
実はとても簡単です。ul の外側に別のボックスを配置するだけです。次に外側のボックスを配置し、内側のボックスをフレックスボックスを使用して通常どおりレイアウトします。

変更後の HTML コードは次のとおりです。

<div class="nav-box">    
    <ul>
        <li>協会について</li>
        <li>協会憲章</li>
        <li>協会構造</li>
        <li>ダウンロード</li>
    </ul>
</div>

変更後の CSS コードは次のとおりです。

.nav-box {
    幅: 100%;
    位置: 固定; 
}
ul {
    ディスプレイ: フレックス;
    コンテンツの両端揃え: スペースの間;
    マージン: 0 15px;
    背景: ピンク;
}
li {
    フレックス: 1;
    リストスタイル: なし;
    高さ: 100px;
    行の高さ: 100px;
    テキスト配置: 中央;
    フォントサイズ: 30px;
    境界線: 1px 実線 #fff;
}

この時点で問題は解決されたことがわかりました。

flexレイアウトとposition:absolute/fixedの競合に関する記事はこれで終わりです。flexとposition:absolute/fixedの競合についての詳細は、123WORDPRESS.COMの過去の記事を検索するか、以下の関連記事を引き続きご覧ください。今後とも123WORDPRESS.COMをよろしくお願いいたします。

<<:  Web開発で使用される基本的な概念と技術の紹介

>>:  MySQL インデックス プッシュダウンを 5 分で学ぶ

推薦する

ウェブサイトの速度を上げる6つの方法

1. .js ライブラリ ファイルのアドレスを Google CDN アドレスに置き換えます。 (G...

Vue 監視プロパティと計算プロパティ

目次1. 監視プロパティを監視する1. ショッピングカート2. すべて選択し、すべて選択解除する2....

yum 経由で CentOS に PHP をインストールするチュートリアル

まず、yumを使ってCentOSにPHPをインストールする方法を紹介します。 1. PHPのyumソ...

HTML_PowerNode 入門 Java アカデミー

HTMLとは何ですか? HTML は Web ページを記述するために使用される言語です。 HTML ...

読み込み進捗バーのネイティブ JS 実装

この記事では、ネイティブ JS によって実装された動的読み込みプログレス バーの特殊効果を紹介します...

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

この記事では、MySQLバージョン5.7のインストール方法と使用方法、およびデータベースデータの保存...

HTML テーブル マークアップ チュートリアル (22): 行の境界線の色属性 BORDERCOLORLIGHT

行内では、明るい境界線の色を個別に定義できます。基本的な構文<TR ボーダーカラーライト=co...

VUEトークンの無効化プロセスの詳細な説明

目次ターゲット思考分析コード着陸要約するターゲットトークンの有効期限切れシナリオの処理トークンは、ユ...

長いデータを HTML で表示するときに処理する方法

HTML で長いデータを表示する場合、マウスをその上に移動するとデータを切り捨てて完全なデータを表示...

JavaScript 中断要求に対するいくつかの解決策の詳細な説明

目次1 約束呼び出しチェーンを中断する約束を破る中止メソッドのラッピング - Axios の Can...

MySQLデータベースバックアップのさまざまな実装方法の概要

この記事では、MySQL データベースのバックアップを実装するさまざまな方法について説明します。ご参...

MySQLの文字列インターセプト関連関数の概要

この記事では、MySQL の文字列インターセプト関連の機能を紹介します。具体的な内容は以下のとおりで...

イメージを再構築せずにDockerにポートを動的に追加する方法

操作中に Docker コンテナの公開ポートを変更または追加する必要がある場合がありますが、実行中の...

フレックスマルチカラムレイアウトで発生する問題と解決策の詳細な説明

フレックス レイアウトは間違いなくシンプルで使いやすいです。レイアウトをよりシンプルかつ高速にします...

CSS の position 属性の値に関する研究 (概要)

CSS の位​​置属性は要素の配置タイプを指定し、上、下、左、右を使用して要素を具体的に配置します...