FlexBoxは、スティッキーフッターや輪郭列などの一般的なレイアウトの問題を解決するために広く使用されています。これらの機能に加えて、人気が低い他の実用的な機能を提供します。それらの2つを探索しましょう!
キーポイント
- FlexBoxを使用すると、Flex Projectの
positionに設定されていても、 static
属性を解除された要素(Flexプロジェクトなど)に適用できます。これを使用して、要素の積み重ね順序を制御できます。z-index
FlexBoxの自動マージンを使用して、スピンドルに沿ってフレックスアイテムのカスタムアライメントを実装できます。彼らは余分なスペースを吸収し、隣接するプロジェクトを押しのけて、ユニークなUIパターンを可能にします。 - 視覚的に似ているように見えますが、自動マージンと プロパティを使用すると、特に要素の計算された幅または高さの観点から、異なるレイアウト結果が生成されます。目的のレイアウトに最適な方法を選択することが重要です。
-
flex-grow
flexboxおよびz-index
属性は、要素の配置にのみ適していることを既に知っているかもしれません。デフォルトでは、すべての要素の
属性はz-index
であり、配置されていません。要素のposition
属性がstatic
、position
、relative
、またはabsolute
に設定されている場合、要素は「位置決め」要素です。 fixed
ただし、sticky
では、解除されていない要素(フレックスアイテムなど)も
z-index
フレックスプロジェクトは、インラインブロック[CSS21]とまったく同じ方法で描画されます。ただし、ドキュメントの順序が元のドキュメント注文の代わりに順番に変更され、
であっても、の値は(not
Codepenデモリンクposition
)もスタッキングコンテキストを作成します。static
z-index
この動作を理解するには、次の例を検討してくださいauto
ここでは、
要素と要素の2つの要素を定義します。 要素には、子要素、番号「1」のあるボックスがあります。
要素自体は絶対に配置されています。具体的には、その属性は.front
であり、ビューポート全体をカバーしています。 .back
.front
私たちの.front
要素はフレックス容器です。数字「2」と「3」のボックスという2つの子要素が含まれています。上記で説明したことに基づいて、たとえそれらが要素を配置していなくても、Flexプロジェクトのposition
属性を設定できます(つまり、fixed
属性は
.back
上記のデモのボタンをクリックしてFlexプロジェクトに追加すると、それらはz-index
要素の上にあることに注意してください。 position
FlexBoxおよび自動マージン
Flexプロジェクトに自動マージンを適用することにより、一般的なUIパターンを解くことができます。まず、この典型的なタイトルレイアウトを構築したいと思います:
それを構築するには、FlexBoxを使用します。フローティング、固定幅などの必要はありません。
これが私たちのマークです:
<header> <nav> <h1 id="LOGO">LOGO</h1> <ul class="menu"> <li><a href="https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b">About</a></li> <li><a href="https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b">Projects</a></li> <li><a href="https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b">Contact</a></li> </ul> <ul class="social"> <li><a href="https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b">Facebook</a></li> <li><a href="https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b">Twitter</a></li> </ul> </nav> </header>
私たちのCSSは次のとおりです
この例では、私たちのheader { background: https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b333; } nav { display: flex; align-items: center; width: 90%; max-width: 1200px; margin: 0 auto; } .menu { margin-left: 60px; margin-right: auto; }要素はフレックスコンテナであり、ロゴ、メインメニュー、ソーシャルメニューはフレックスアイテムです。以前の視覚化からわかるように、最初の2つのフレックスアイテムは、メイン軸に沿ってフレックス容器の左側に並んでいます。代わりに、ソーシャルメニューは、メイン軸に沿って親要素の右端に合わせます。
このカスタムアラインメントを実現する1つの方法は、メインメニューにnav
を追加することです。コードの1行だけを使用すると、ソーシャルメニューのデフォルトのアラインメントをオーバーライドし、コンテナの右側に完全にプッシュできます。同様に、
margin-right: auto
自動マージンに加えて、2番目の方法を使用して必要なレイアウトを構築することもできます。最初に、メインメニューからalign-self
プロパティを削除し、
margin-right
両方の場合に結果が同じように見えても、大きな違いがあります。最初のソリューションを使用すると、メニューには最初の計算幅があります。たとえば、ビューポート幅が1100pxの場合、メニュー幅は次のようになります。
flex-grow: 1
一方、2番目のソリューションを使用すると、
を指定したため、メニューの幅が大きくなります。ビューポート幅が1100pxの場合、対応する幅は次のとおりです。
flex-grow: 1
Codepenデモリンク
タイトルレイアウトを変更したいと仮定しましょう。新しい必要なレイアウトは次のとおりです
マークは同じままです。 CSSにいくつかの変更を加える必要があります:
この例では、ソーシャルメニューは親要素の下端に合わせていることに注意してください。繰り返しになりますが、これはメインメニューに
を追加することによって行われます。もちろん、を使用することもできますが、これによりメニューの高さが増加します。
Codepenデモリンク
nav { background: https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b333; display: flex; flex-direction: column; height: 100vh; width: 180px; padding: 20px; box-sizing: border-box; } .menu { margin-top: 60px; margin-bottom: auto; }注意すべきもう1つのことは、どの例でも
プロパティを定義する場合、視覚的な違いが表示されないことです。これは、自動マージンを使用してフレックスアイテムを合わせるために発生します。 justify-content
属性は、自動マージンを削除する場合にのみ有効になります。仕様に応じて:justify-content
自動マージンに空きスペースが割り当てられている場合、マージンはフレックス後に残ったすべての空きスペースにスペースを占有するため、アライメントプロパティはその次元で機能しません。次に、タイトルの新しいバリアントを作成しましょう:
を設定することで簡単に実現できます。ただし、繰り返しますが、自動マージンを使用して同じレイアウトを作成することができました。私たちがしなければならないのは、メインメニューにjustify-content: space-between
を適用することだけです。 margin: 0 auto
この記事では、この記事では、あまり知られていない2つのFlexBoxのヒントを紹介します。終了する前に、レビューしましょう:
Flexプロジェクトの
- プロパティであっても、
- であっても、Flex Projectに属性を適用できます。
position
static
自動マージンを使用して、スピンドルに沿ってフレックスアイテムのカスタムアライメントを実現できます。z-index
- プロジェクトでこれらのヒントのいずれかを使用している場合は、以下のコメントでお知らせください。 Z-IndexのFAQおよびFlexBoxの自動マージンのFAQ
FlexBoxのZ-Indexとは何ですか?それはどのように機能しますか?
は、重複する要素の垂直スタッキング順序を制御するCSS属性です。 FlexBoxでは、プロパティを使用して、Z軸に沿ってフレックスアイテムがある順序を制御できます。
は、要素の配置にのみ適していることに注意することが重要です。デフォルトの値はです。つまり、スタッキング順序はその親要素に等しくなります。正の数値がZ-Index
に割り当てられている場合、要素は親要素の上になります。 Z-Index
Z-Index
なぜ私のZ-IndexがFlexBoxで動作しないのですか? auto
Z-Index
属性が位置付け要素のみに適していることです。要素が配置されていない場合(つまり、その
値が、Z-Index
、またはZ-Index
ではない場合)、position
は効果がありません。もう1つの理由は、親要素がrelative
値セットを持っていることであり、子要素の積み重ね順に影響します。 absolute
FlexBoxで自動マージンはどのように機能しますか?
FlexBoxでは、自動マージンには特別な機能があります。追加のスペースを吸収し、隣接するプロジェクトを押しのけることができます。 Flexプロジェクトに自動マージンを設定すると、スピンドルに沿って残りのスペースを占め、他のプロジェクトを効果的に押しのけます。これは、フレックスコンテナ内のアイテムを調整するのに非常に便利です。Z-Indexを使用してフレックスアイテムの順序を制御できますか?
はい、
Z-Index
は位置付け要素にのみ適していることを忘れないでください。 Flexプロジェクトが配置されていない場合、Z-Index
は効果がありません。 Z-Index
なぜ私のフレックスプロジェクトが自動マージンと適切に整合していないのですか? Flexプロジェクトが自動マージンと適切に整合していない場合、いくつかの理由が原因である可能性があります。一般的な理由は、フレックス容器に固定された高さまたは幅があることであり、マージンが利用できるスペースを制限します。もう1つの理由は、Flexプロジェクトのサイズが固定されており、マージンが余分なスペースを吸収するのを防ぐことです。
FlexBoxでZ-Indexの問題を解決する方法は?
FlexBoxの
問題を解決するには、通常、要素が配置され、Z-Index
値が正しく設定されていることを確認することが含まれます。 Z-Index
が機能しない場合は、要素が配置されているかどうかを確認してください。そうでない場合は、Z-Index
、relative
、またはabsolute
値を設定して見つけることができます。また、子要素が子要素の積み重ね順に影響を与えるため、親要素のfixed
値を確認してください。 position
Z-Index
自動マージンを使用してフレックスアイテムを中央に配置できますか?
はい、自動マージンを使用して、フレックスコンテナのフレックスアイテムを中心にすることができます。 Flexプロジェクトのすべての側面に自動マージンを設定することにより、フレックスコンテナ内で垂直および水平に中央に配置されます。
FlexBoxのZ-Indexのデフォルト値は何ですか?
FlexBoxののデフォルト値はです。これは、フレックスアイテムのスタッキング順序がその親要素に等しいことを意味します。スタッキング順序を変更する場合は、正または負の数値をZ-Index
に割り当てることができます。 auto
Z-Index
Z-Indexは、要素の積み重ね順序にどのような影響を与えますか?
を持っている場合、HTMLの後に表示される要素が上部に表示されます。 Z-Index
FlexBoxでZ-Indexを使用して重複する要素を作成できますか?
はい、FlexBoxを使用してZ-Index
属性を使用して、重複する要素を作成できます。 FLEXプロジェクトに異なるZ-Index
値を割り当てることにより、他のプロジェクトの上に表示されるアイテムを制御し、重複する効果を作成できます。 Z-Index
は位置付け要素のみに適しているため、Z-Index
のために有効にするためにFlexプロジェクトを配置する必要があることを忘れないでください。
すべての画像リンクを元の形式で保持し、テキストを擬似オリジナルにして、元の意味を変えずに記事をより多様にするよう努めていることに注意してください。 CodePenリンクにはアクセスできないため、元のテキストのリンクを「Codepen Demoリンク
以上がクイックヒント:Z-IndexとAutoマージンがFlexBoxでどのように機能するかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

CSSグリッドは、複雑で応答性の高いWebレイアウトを作成するための強力なツールです。設計を簡素化し、アクセシビリティを向上させ、古い方法よりも多くの制御を提供します。

記事では、レスポンシブデザインにおけるスペースの効率的なアラインメントと分布のためのレイアウト方法であるCSS FlexBoxについて説明します。 FlexBoxの使用量を説明し、CSSグリッドと比較し、ブラウザのサポートを詳細に説明します。

この記事では、ビューポートメタタグ、柔軟なグリッド、流体メディア、メディアクエリ、相対ユニットなど、CSSを使用してレスポンシブWebサイトを作成するための手法について説明します。また、CSSグリッドとフレックスボックスを使用してカバーし、CSSフレームワークを推奨しています

この記事では、要素の寸法の計算方法を制御するCSSボックスサイズのプロパティについて説明します。コンテンツボックス、ボーダーボックス、パディングボックスなどの値と、レイアウト設計とフォームアライメントへの影響について説明します。

記事では、CSS、キープロパティ、およびJavaScriptとの組み合わせを使用してアニメーションの作成について説明します。主な問題は、ブラウザの互換性です。

記事では、3D変換、主要なプロパティ、ブラウザの互換性、およびWebプロジェクトのパフォーマンスに関する考慮事項にCSSを使用して説明します。

この記事では、CSSグラデーション(線形、放射状、繰り返し)を使用して、ウェブサイトのビジュアルを強化し、深さ、フォーカス、および現代の美学を追加します。

記事では、CSSの擬似要素、HTMLスタイリングの強化における使用、および擬似クラスとの違いについて説明します。実用的な例を提供します。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

Dreamweaver Mac版
ビジュアル Web 開発ツール

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。
