ホームページ ウェブフロントエンド htmlチュートリアル CSS のブロックレベルの書式設定について

CSS のブロックレベルの書式設定について

Feb 23, 2018 am 09:49 AM
css フォーマット

1.BFC定義

BFC(ブロックフォーマットコンテキスト)は、直訳すると「ブロックレベルのフォーマットコンテキスト」となります。これは、ブロックレベルのボックス (ブロックレベルの要素) のみが参加する独立したレンダリング領域であり、内部のブロックレベルのボックスがどのようにレイアウトされるかを規定しており、平たく言えば、この領域の外側とは何の関係もありません。 : 作成済み BFC の要素は独立したボックスであり、内部のサブ要素は外部の要素のレイアウトに影響を与えません (ただし、内部のレイアウトは外部には影響しません)。BFC はドキュメント 2 の通常のフローに属します。 BFC の生成:

BFC がどのように BFC をトリガーするかを理解します
次の条件のいずれかが満たされる場合、BFC をトリガーして BFC に変換できます

ルート要素

float 属性が none ではない

位置

が静的かつ相対的ではない

オーバーフロー 表示されません

表示はインラインブロック、テーブルセル、テーブルキャプション、フレックス、インラインフレックスです

BFC はどこにでもあることがわかりますが、使用しているときにそれがわからないだけです

3. BFC の配置ルール:

BFC に変形した後の特徴は次のとおりです:

内部のボックスは縦方向に次々と配置されます。

ボックスの垂直距離はマージンによって決まります。同じ BFC に属する 2 つの隣接するボックスのマージンは、各要素のマージン ボックスの左側が、それを含むブロック境界ボックスの左側と接触します (左から右への書式設定の場合はその逆)。これは浮きがあった場合にも当てはまります。

BFCエリアはフロートボックスと重なりません。

BFC はページ上で分離された独立したコンテナーであり、コンテナー内のサブ要素は外部の要素には影響しません。およびその逆。

BFC の高さを計算するとき、浮動要素も計算に参加します

4. BFC 関数:

使用時にボビーになります

1. 同じサブ要素に属する

マージンの重なりを防止します

bfc マージンの重なり (ボックスの垂直方向の距離はマージンによって決まります。同じ BFC に属する 2 つの隣接するボックスのマージンは重なり合います)

問題: 画像からわかるように、20 ピクセルしかありません。 String1 と String2 の間のマージン 論理的には 40px である必要がありますが、これにより BFC 内でマージンが重複します

コード:

<style>.container1{
        /* 通过overflow:hidden可以创建bfc */
        overflow: hidden;
        background-color: red;
        width: 300px;
    }
    .sub1{
        margin: 20px 0px;
        background-color: #dea;
    }</style><div class="container1">
        <div class="sub1">String1</div>
        <div class="sub1">String2</div></div>
ログイン後にコピー

解決策: div の外側でコンテナをラップし、コンテナをトリガーできます。 BFC を生成します。この場合、2 つの div は同じ BFC に属さず、マージンの重複は発生しません。


コード:

<style>
    .newbfc{
            overflow: hidden;
    }</style><div class="container1">
        <div class="sub1">String1</div>
        <div class="newbfc"><div class="sub1">String2</div></div></div>
ログイン後にコピー

2.

Clear float

:


問題: 要素の子要素がすべてフローティングされている場合、高さの崩壊現象が発生します。つまり、親コンテナの高さが低くなります。引き伸ばさないでください

コード:

<style>
    .pre2{
        width: 200px;
        border: 2px solid red;
    }
    .float1,.float2{
        width: 100px;
        height: 100px;
        float: left;
    }
    .float1{
        background-color: #dee;
    }
    .float2{
        background-color: #dcc;
    }</style><div class="pre2">
        <div class="float1"></div>
        <div class="float2"></div></div>
ログイン後にコピー

解決策:

bfc のルール: BFC の高さを計算するとき、浮動要素も計算に参加するため、親コンテナーが bfc に設定されている限り、子要素は含めることができます:

このコンテナにはフローティング子要素が含まれ、その高さはその子要素を含むように拡張され、この BFC では、これらの要素はページの通常のドキュメント フローに戻ります。

.pre2{
        width: 200px;
        border: 2px solid red;
        /* 设置overflow*/
        overflow:hidden;
    }
ログイン後にコピー

3. レイアウトの解決策: テキストの折り返しを防止します

コード:

<style>.container2{
        overflow: hidden;
        width: 200px;
    }
    .box{
        float: left;
        width: 100px;
        height: 30px;
        background-color: #daa;
    }</style><div class="container2">
        <div class="box"></div>
        <p style="background-color: #eea">sdfadsfdff fffffffds fsfffff sfd  fsdsdfsdf fffffff</p></div>
ログイン後にコピー

この p 要素は移動しませんが、フローティング要素の下に表示されます。 p 要素の行ボックス (テキスト行を参照) がシフトされます。ここでは、ライン ボックスの水平方向の縮小により、フローティング要素のためのスペースが提供されます。

BFC ルール: 各要素のマージン ボックスの左側は、それを含むブロックの境界ボックスの左側に接します (左から右への書式設定の場合、それ以外の場合はその逆)。これは浮きがあった場合にも当てはまります。


この問題を解決するには、p 要素に overflow:hidden を追加して、それを新しい BFC にします。

これらの事例を読んだ後は、この方法を習得したと思います。さらに興味深い情報については、他の関連記事に注目してください。 PHP中国語ウェブサイトです!

関連記事:

HTML でフレームとウィンドウを分割するためによく使用される属性は何ですか?

HTML で CSS を参照する方法は何ですか?

以上がCSS のブロックレベルの書式設定についての詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホット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衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

VueでBootstrapの使用方法 VueでBootstrapの使用方法 Apr 07, 2025 pm 11:33 PM

vue.jsでBootstrapを使用すると、5つのステップに分かれています。ブートストラップをインストールします。 main.jsにブートストラップをインポートしますブートストラップコンポーネントをテンプレートで直接使用します。オプション:カスタムスタイル。オプション:プラグインを使用します。

HTML、CSS、およびJavaScriptの役割:コアの責任 HTML、CSS、およびJavaScriptの役割:コアの責任 Apr 08, 2025 pm 07:05 PM

HTMLはWeb構造を定義し、CSSはスタイルとレイアウトを担当し、JavaScriptは動的な相互作用を提供します。 3人はWeb開発で職務を遂行し、共同でカラフルなWebサイトを構築します。

HTML、CSS、およびJavaScriptの理解:初心者向けガイド HTML、CSS、およびJavaScriptの理解:初心者向けガイド Apr 12, 2025 am 12:02 AM

webdevelopmentReliesOnhtml、css、andjavascript:1)htmlStructuresContent、2)cssStylesit、および3)Javascriptaddsinteractivity、形成、

ブートストラップのフレームワークをセットアップする方法 ブートストラップのフレームワークをセットアップする方法 Apr 07, 2025 pm 03:27 PM

Bootstrapフレームワークをセットアップするには、次の手順に従う必要があります。1。CDNを介してブートストラップファイルを参照してください。 2。独自のサーバーでファイルをダウンロードしてホストします。 3。HTMLにブートストラップファイルを含めます。 4.必要に応じてSASS/LESSをコンパイルします。 5。カスタムファイルをインポートします(オプション)。セットアップが完了したら、Bootstrapのグリッドシステム、コンポーネント、スタイルを使用して、レスポンシブWebサイトとアプリケーションを作成できます。

ブートストラップにスプリットラインを書く方法 ブートストラップにスプリットラインを書く方法 Apr 07, 2025 pm 03:12 PM

ブートストラップスプリットラインを作成するには2つの方法があります。タグを使用して、水平方向のスプリットラインを作成します。 CSS Borderプロパティを使用して、カスタムスタイルのスプリットラインを作成します。

ブートストラップに写真を挿入する方法 ブートストラップに写真を挿入する方法 Apr 07, 2025 pm 03:30 PM

ブートストラップに画像を挿入する方法はいくつかあります。HTMLIMGタグを使用して、画像を直接挿入します。ブートストラップ画像コンポーネントを使用すると、レスポンシブ画像とより多くのスタイルを提供できます。画像サイズを設定し、IMG-Fluidクラスを使用して画像を適応可能にします。 IMGボーダークラスを使用して、境界線を設定します。丸い角を設定し、IMGラウンドクラスを使用します。影を設定し、影のクラスを使用します。 CSSスタイルを使用して、画像をサイズ変更して配置します。背景画像を使用して、背景イメージCSSプロパティを使用します。

ブートストラップボタンの使用方法 ブートストラップボタンの使用方法 Apr 07, 2025 pm 03:09 PM

ブートストラップボタンの使用方法は?ブートストラップCSSを導入してボタン要素を作成し、ブートストラップボタンクラスを追加してボタンテキストを追加します

ブートストラップのサイズを変更する方法 ブートストラップのサイズを変更する方法 Apr 07, 2025 pm 03:18 PM

Bootstrapの要素のサイズを調整するには、次のものを含むDimensionクラスを使用できます。

See all articles