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

推薦する

Nginx プロキシ axios リクエストと注意事項

序文最近、小さなデモを作成しました。大規模な工場のオンライン データを使用したため、インターフェイス...

テキストエリア テキストエリアの幅と高さ 幅と高さの自動適応実装コード

コードをコピーコードは次のとおりです。 <HTML> <ヘッド> <T...

Dockerはブリッジを追加し、IPアドレスの範囲を設定します

バイナリ docker 19.03 バージョンがインストール後に docker0 ブリッジを自動的に...

Zabbix で Windows のパフォーマンスを監視する方法

背景情報最近、Windows パフォーマンスに関する本を読み直しています。以前は SCOM 監視を使...

VueのTodoListケースの詳しい説明

<テンプレート> <div id="ルート"> <...

Vue での props の使い方の紹介

序文: Vue では、props を使用して、もともと分離されていたコンポーネントを直列に接続するこ...

Vueカスタムテーブル列実装プロセス記録

目次序文レンダリングsetTable コンポーネント使用結論序文フォームを使用して PC 側のプロジ...

Vue プロジェクト @change 複数のパラメータを使用して複数のイベントを渡す

まず、変更イベントは 1 つだけです。 changelevel() //値を選択選択を変更して行の値...

js での遅延読み込みとプリロードの具体的な使用法

遅延読み込み(レイジー読み込み)とプリロードは、Web 最適化によく使用される手段です。 。 1. ...

InnoDB エンジンのパフォーマンスを最適化するための my.cnf パラメータ構成

私はインターネット上で数え切れないほどの my.cnf 構成を読みましたが、言及されている構成のほと...

CSS 疑似要素と疑似クラスの魔法のような使い方についての簡単な説明

CSS は Web ページで非常に重要な役割を果たします。近年の CSS の発展に伴い、疑似要素/疑...

Dockerボリュームのファイルマッピング方法

背景ブロックチェーン ログ モジュールで作業しているときに、コンテナーが実行されている場合は、ログ ...

検索ボックスと検索ボタンの境界線が重なり合わない問題を解決

今日、Baiduのページで練習していたところ、検索ボックスとボタンの余白とパディングの値が0に設定さ...

MySQLデータベースはsysbenchに基づくOLTPベンチマークテストを実装します

Sysbench は、MySQL データベース ストレージ エンジン InnoDB のディスク I/...

MySQL がデュアルマスターで構成されている場合にデータループの競合を回避する方法

あなたはこの質問について考えたことがあるでしょうか?デュアルアクティブが構成されている場合、データル...