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

推薦する

CSS を使用して三角形を実装する一般的な手法 (複数の方法)

面接の経験によっては、CSS に関する質問がよく見られ、CSS を使用して三角形を描画する方法につい...

MySQL の厄介な Aborted 警告をケーススタディで分析する

この記事では主に、MySQL の Aborted アラームに関する関連コンテンツを紹介し、参考と学習...

Linux で誤って削除したメッセージ ファイルを復元する方法

プロセスで使用されていて、誤って削除されたファイルがある場合、それらを回復することができます。プロセ...

Vite+ElectronでVUE3デスクトップアプリケーションを素早く構築

目次1. はじめに2. Viteプロジェクトを作成する1. viteをインストールする2. プロジェ...

Gitlab-ci を使用してリモート マシンに継続的にデプロイする方法 (詳細なチュートリアル)

簡単に言うと、今日は Gitlab-CI を使用してリモート サーバーに自動的にデプロイする方法につ...

MYSQL ロック解除とロックテーブルの紹介

MySQL ロックの概要他のデータベースと比較すると、MySQL のロック メカニズムは比較的単純で...

ブラウザのスクロールバーのスタイルを変更するための純粋な CSS の例

CSSを使用してブラウザのスクロールバーのスタイルを変更する ::-webkit-スクロールバー{ ...

Docker に Solr 8.6.2 をインストールし、中国語の単語セグメンターを構成する方法

1. 環境バージョンDocker バージョン 19.03.12セントロス7ソル8.6.2 2. Do...

Electronで不規則な形状の透明部分をクリックする実装

目次不規則なフォームの実装透明な部分をクリックする不規則なフォームの実装ここでは円形フォームを実装し...

DOCTYPE 文書型宣言 (Web ページ愛好家必読)

DOCTYPE 宣言 作成するすべてのページの先頭に、ドキュメント宣言が必要です。はい、そうでしょう...

CentOS 8 VMware 仮想マシンがインターネットにアクセスするための静的 IP ネットワーク カードの設定の詳細な説明

最初のステップ: VMwareで、「編集」-「仮想ネットワークエディタ」をクリックします。下図に示す...

Vue要素ツリーコントロールに点線を追加する詳細な説明

目次1. 成果を達成する2. 実装コード3. その他の実装要約する1. 成果を達成する 2. 実装コ...

HTML テーブル マークアップ チュートリアル (16): タイトルの水平方向の配置属性 ALIGN

デフォルトでは、表のタイトルは水平方向に中央揃えされます。ALIGN 属性を使用して、タイトル テキ...

Windows 10 システムで nginx ファイル サーバーを構成するためのグラフィック チュートリアル

Nginx の公式 Web サイトから Windows バージョンの Nginx をダウンロードしま...

MySQL 5.7.17 のインストールと使用方法のグラフィックチュートリアル

MySQL は、スウェーデンの会社 MySQL AB によって開発され、現在は Oracle が所有...