検索
ホームページウェブフロントエンドCSSチュートリアルCSS レイアウトの書式設定コンテキスト (FC) タイプとは何ですか?

フォーマットコンテキスト(FC)とは何ですか?書式設定コンテキスト (書式設定コンテキスト) は、サブ要素の配置方法、およびサブ要素の相互作用や他の要素との相互作用を決定する一連のレンダリング ルールを持つページ内のレンダリング領域を指します。 CSSレイアウトで?次の記事では、いくつかの種類の書式設定コンテキストを紹介します。

ブロック フォーマット コンテキスト (BFC):

BFC とは何ですか?ブロック フォーマット コンテキスト (ブロック レベルのフォーマット コンテキスト) は、独立したブロック レベルのレンダリング領域です。この領域には、ブロック レベルのボックスのレイアウトを制約する一連のレンダリング ルールがあり、領域の外側とは何の関係もありません。

BFC制約ルール

1. 内部BOXは垂直方向に次々と配置されます

2. 垂直方向の距離はマージンによって決定されます。 (完全なステートメントは次のとおりです。同じ BFC に属する 2 つの隣接するボックスのマージンは、方向に関係なく重なり合います。)

3. 各要素の左マージンは、それを含むブロックの左境界と接触しています。左から右へ)、浮動要素の場合でも同様です。 (これは、BFC の子要素がその包含ブロックを超えないことを意味しますが、絶対位置を持つ要素はその包含ブロックの境界を超えることができます)。

5、BFC の高さを計算するとき、浮動子要素も計算に参加します。BFC はページ上の独立したコンテナーであり、コンテナー内の子要素は外部の要素には影響しません。 、その逆も同様です。

BFC アプリケーション

margin が重ならないようにします

    フローティングによる高さの崩れを防ぎます

margin发生重叠

  • 防止发生因浮动导致的高度塌陷

  • 怎么生成 BFC

    • float的值不为none

    • overflow的值不为visible

    • display的值为inline-block table-cell table-caption

    • position的值为absolutefixed

    display:table也认为可以生成BFC?其实是在于Table会默认生成一个匿名的table-cell,正是这个匿名的table-cell生成了BFC。

    行内格式化上下文(IFC):

    什么是IFC?IFC(Inline Formatting Contexts)直译为"行内格式化上下文",IFC的line box(线框)高度由其包含行内元素中最高的实际高度计算而来(不受到竖直方向的 padding/margin 影响)

    IFC有的特性

    1、IFC中的line box一般左右都贴紧整个IFC,但是会因为float元素而扰乱。float元素会位于IFC与与line box之间,使得line box宽度缩短。

    2、IIFC中时不可能有块级元素的,当插入块级元素时(如p中插入div)会产生两个匿名块与div分隔开,即产生两个IFC,每个IFC对外表现为块级元素,与div垂直排列。

    IFC的应用

    1. 水平居中:当一个块要在环境中水平居中时,设置其为inline-block则会在外层产生IFC,通过text-align则可以使其水平居中。

    2. 垂直居中:创建一个IFC,用其中一个元素撑开父元素的高度,然后设置其vertical-align:middle,其他行内元素则可以在此父元素下垂直居中。

    网格布局格式化上下文(GFC)

    GFC(GridLayout Formatting Contexts)直译为"网格布局格式化上下文",当为一个元素设置display值为grid的时候,此元素将会获得一个独立的渲染区域,我们可以通过在网格容器(grid container)上定义网格定义行(grid definition rows)和网格定义列(grid definition columns)属性各在网格项目(grid item)上定义网格行(grid row)和网格列(grid columns)为每一个网格项目(grid item)定义位置和空间。

    GFC将改变传统的布局模式,他将让布局从一维布局变成了二维布局。简单的说,有了GFC BFC の生成方法

    float の値は none ではなく、

    overflow の値はvisible ではありません ;

    🎜🎜 display の値は inline-block table-cell table-caption; 🎜🎜🎜 position の値は absolute または fixed です。 li>🎜display:table BFC を生成できると思いますか?実際、Table はデフォルトで匿名のテーブル セルを生成し、BFC を生成するのはこの匿名のテーブル セルです。 🎜🎜🎜🎜インライン書式設定コンテキスト (IFC): 🎜🎜🎜🎜 IFC とは何ですか? IFC (Inline Formatting Contexts) は、文字通り「インライン書式設定コンテキスト」と訳されます。IFC のライン ボックス (ワイヤー フレーム) の高さは、それに含まれるインライン要素の実際の最大の高さから計算されます (垂直パディング/マージンの影響を受けません)。 IFCの特徴🎜🎜🎜🎜🎜 1. IFCのラインボックスは通常左右のIFC全体に密着していますが、float要素によって邪魔されます。 float 要素は IFC とライン ボックスの間に配置され、ライン ボックスの幅が短くなります。 🎜🎜2. IIFC にブロックレベル要素を挿入することは不可能です (p に div を挿入するなど)、2 つの匿名ブロックが div から分離されて生成されます。生成されると、各 IFC は外部に公開され、div と垂直に配置されたブロックレベルの要素として表示されます。 🎜🎜🎜IFC の応用🎜🎜
      🎜🎜水平方向の中央揃え: ブロックを環境内で水平方向の中央揃えにする場合は、それを inline-block に設定します。 IFC は外側の層で生成され、text-align を通じて水平方向に中央揃えにすることができます。 🎜🎜🎜垂直方向の中央揃え: IFC を作成し、要素の 1 つを使用して親要素の高さを拡張し、その vertical-align:middle を設定します。 >、他の行内 この要素は、この親要素の下で垂直方向の中央に配置できます。 🎜
    🎜🎜🎜グリッド レイアウト フォーマット コンテキスト (GFC)🎜🎜🎜🎜GFC (GridLayout Formatting Contexts) は、設定時に文字通り「グリッド レイアウト フォーマット コンテキスト」と翻訳されます。 display の値を要素の grid に渡すと、この要素は独立したレンダリング領域を取得し、それをグリッド コンテナ (グリッド コンテナ) に渡すことができます。 > グリッド項目 (グリッド定義グリッド行 (グリッド行) とグリッド列 (グリッド列) on item) 各グリッド項目 (グリッド項目) 位置とスペースを定義。 🎜🎜GFC は従来のレイアウト モードを変更し、レイアウトを 1 次元レイアウトから 2 次元レイアウトに変更します。簡単に言うと、GFC を使用すると、レイアウトは単一の次元に制限されなくなります。このとき、9マスやパズルなどのレイアウト効果を非常に簡単に実現できます。 🎜🎜🎜🎜アダプティブ フォーマッティング コンテキスト (FFC): 🎜🎜🎜🎜FFC (フレックス フォーマッティング コンテキスト) は、直訳すると、表示値が flex または inline-flex である要素は、アダプティブ コンテナー (フレックス コンテナー) を生成します。 )。 🎜

    フレックスボックスはフレックスコンテナとフレックスアイテムで構成されています。要素の表示プロパティを flex または inline-flex に設定することで、フレックス コンテナーを取得できます。 flex に設定されたコンテナはブロックレベル要素としてレンダリングされ、inline-flex に設定されたコンテナはインライン要素としてレンダリングされます。

    フレックスコンテナ内の各子要素はフレックスアイテムです。フレックス項目はいくつでも存在できます。フレックス コンテナの外部およびフレックス プロジェクト内のすべての要素は影響を受けません。簡単に言うと、Flexbox は、フレックス アイテムをフレックス コンテナー内にどのように配置するかを定義します。

    アダプティブ フォーマット コンテキスト (FFC) とブロックレベル フォーマット コンテキスト (BFC) の違い:

    FFC は BFC に似ていますが、次のような違いがあります:

    1 は ::first- をサポートしません。 line と ::first-letter、これら 2 つの擬似要素

    2.vertical-align は、Flexbox のサブ要素には影響しません

    3。Float 属性と Clear 属性も、Flexbox のサブ要素には影響しません。子要素をドキュメント フローから取り出すことは (ただし、Flexbox では有効です!)

    4. 複数列レイアウト (column-*) も Flexbox では無効です。つまり、複数列レイアウトを使用して要素を配置することはできません。 Flexbox 内の子要素 ​​

    5. Flexbox の下の子要素は親コンテナーの幅を継承しません

    推奨関連記事: CSS_html/css_WEB-ITnose のブロックレベルの書式設定コンテキストを理解する

    CSS > インライン書式設定におけるさまざまな高さの計算_html/css_WEB-ITnose

    ブロックの書式設定コンテキスト、フローティングおよび絶対配置の仕組みの詳細な説明_html/css_WEB-ITnose

    以上がCSS レイアウトの書式設定コンテキスト (FC) タイプとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

    声明
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
    'は、派手ではあるが、複雑でないページローダーを作りましょう'は、派手ではあるが、複雑でないページローダーを作りましょうApr 15, 2025 am 09:33 AM

    特にプログレッシブWebアプリやリアクティブサイトが増加しているため、最近のサイトでロード状態を見るのはかなり一般的です。それは一つの方法です

    クロスプラットフォームアプリ開発のランドスケープクロスプラットフォームアプリ開発のランドスケープApr 15, 2025 am 09:29 AM

    私はこのようなものをあまりうまく追跡しませんが、私はそれを手に入れます。 AndroidとiOS用のネイティブアプリが必要な場合は、むしろ1回だけ書く必要があると思います

    テレタイプのテキスト要素は...少なくともこのサイトでテレタイプのテキスト要素は...少なくともこのサイトでApr 15, 2025 am 09:28 AM

    それはこれでした:

    fuseboxを使用して、ReactのWebpackに代わるバンドルの代替fuseboxを使用して、ReactのWebpackに代わるバンドルの代替Apr 15, 2025 am 09:26 AM

    Webpackへの代替バンドラーを探している場合は、Fuseboxをご覧ください。 Webpackが提供するもの、コードスプリッティ、ホットに基づいています

    Svelteでスタイルを書くのが好きなことSvelteでスタイルを書くのが好きなことApr 15, 2025 am 09:25 AM

    最近、Svelteの周りには多くの当然の誇大広告があり、プロジェクトは24,000を超えるGitHubスターを蓄積しています。間違いなく最も単純なJavaScript

    毎週のプラットフォームニュース:CSSコラムスパンプロパティ、ADAはWebサイトに適用され、自動生成画像の説明毎週のプラットフォームニュース:CSSコラムスパンプロパティ、ADAはWebサイトに適用され、自動生成画像の説明Apr 15, 2025 am 09:23 AM

    今週のラウンドアップ:マルチコラムレイアウトは幅広いサポートを得ます。ADAは小売業者にとってより多くのA11yを意味し、Googleはすべての空の画像について何かをしています

    スタイリングの現在の状態は2019年に選択されますスタイリングの現在の状態は2019年に選択されますApr 15, 2025 am 09:18 AM

    CSSの最も希望のある機能を最後にコンパイルしたときから、スタイリングフォームコントロールが大きな質問でした。トップ5、i' d say。そしてネイティブの

    これらの10のプロジェクトのアイデアで2020年にフロントエンドマスターになるこれらの10のプロジェクトのアイデアで2020年にフロントエンドマスターになるApr 15, 2025 am 09:17 AM

    これは、Devで書いたQuickieの記事から少し更新されたクロスポストです。 I' M出版'

    See all articles

    ホットAIツール

    Undresser.AI Undress

    Undresser.AI Undress

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

    AI Clothes Remover

    AI Clothes Remover

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

    Undress AI Tool

    Undress AI Tool

    脱衣画像を無料で

    Clothoff.io

    Clothoff.io

    AI衣類リムーバー

    AI Hentai Generator

    AI Hentai Generator

    AIヘンタイを無料で生成します。

    ホットツール

    ドリームウィーバー CS6

    ドリームウィーバー CS6

    ビジュアル Web 開発ツール

    Safe Exam Browser

    Safe Exam Browser

    Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

    SublimeText3 Linux 新バージョン

    SublimeText3 Linux 新バージョン

    SublimeText3 Linux 最新バージョン

    MantisBT

    MantisBT

    Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

    WebStorm Mac版

    WebStorm Mac版

    便利なJavaScript開発ツール