フレックスレイアウトと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 分で学ぶ

推薦する

Linux で mysql-8.0.20 をインストールするための詳細なチュートリアル

** Linuxにmysql-8.0.20をインストールする**環境の紹介オペレーティングシステム:...

位置固定オフセット問題を解決する方法の詳細な説明

質問CSS 固定配置の position:fixed は非常に使いやすいです。ブラウザのビューポート...

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

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

jsvc を使用して tomcat を起動する方法 (通常のユーザーとして実行)

jsvc の紹介実稼働環境では、Tomcat はデーモン モードで実行する必要があります。Tomc...

MySQL クラスタの詳細な説明: 1 つのマスターと複数のスレーブのアーキテクチャ実装

実験環境: 1. CentOS 7 サーバー 3 台2. mysql5.7.26 (3台のマシンはす...

MySQL で B+ ツリー インデックスを使用する利点は何ですか?

この問題を理解する前に、まず MySQL テーブルのストレージ構造を確認し、次にバイナリ ツリー、マ...

CentOS 6.4 で rpm を使用して MySQL をオフラインでインストールする

rpmインストールパッケージを使用してmysqlをオフラインでインストールします。参考までに準備:公...

Windows オペレーティング システムでポートの使用状況を照会およびクリアするプログラム

Windowsオペレーティングシステムでは、ポートの占有状況を照会し、ポートの占有状況をクリアするプ...

VSCode 構成 Git メソッドの手順

Git は vscode に統合されており、git コマンドをいくつか記述しなくても、クリックするだ...

Javascript 構造化代入の詳細

目次1. 配列の分解2. オブジェクトの分解3. 不完全な解体4. 分割代入を使用して変数交換を実装...

ボタンをクリックした後のCSS読み込み効果を実現する

自社製品にクリック後1~2秒待機時間があるボタン(確認メールを送信する)があるため、クリック後の1~...

MySQL で特殊文字を含むデータベース名を作成する方法の例

序文この記事では、MySQL で特殊文字を使用してデータベース名を作成する方法について説明します。こ...

MySQL テーブル内の重複データを検索して削除する方法の概要

時々、データベース テーブルに重複したデータが大量に保存されます。これらの重複データはリソースを浪費...

リアルタイムクロックを実装するネイティブJS

ネイティブ JS で実装したリアルタイム クロック エフェクトを共有します。エフェクトは以下のとおり...