CSSの使用に関する深い理解 clear:both

CSSの使用に関する深い理解 clear:both

clear:both清除浮動これは私が常に持っていた印象ですが、私はこれをめったに使用せず、私の理解は実際にはあまり正確ではありません。今日情報を確認して記録しました。

ドキュメントフローから外れます

float の本来の目的はテキストの折り返しを実現することであり、これはドキュメントのフローから部分的に分離することとして理解できます。

CSS では、ドキュメント フローから外れるとは、ボックスが通常のレイアウトから外れ、他のボックスが存在しないかのように配置されることを意味します。文書フローからの分離には2つの種類があります

  • 完全にドキュメント フローから外れます。たとえばposition:absoluteで絶対配置ボックスを使用すると、他のボックス (それ自体、またはボックス内の要素) は、レイアウトのためにこの絶対配置ボックスを無視します。
  • ドキュメント フローから部分的に外れます。つまり、 floatボックスです。 floatプロパティを使用した後、他のブロック ボックスはレイアウトのためにfloat盒子を無視しますが、他のボックス内のインライン要素とインライン ブロック要素は、このフローティング ボックス用のスペースを確保します。

クリア:両方

clear:both属性が追加されたボックスに作用します

ボックスにclear:both追加すると、そのボックスの上境界線が、その之前フロート ボックスの底外邊距低于なります。

したがって、 clear:bothフロートをクリアしませんが、フロートの効果をクリアします。フローティング ボックスは、まだ部分的にドキュメント フローから外れています。

clear の値は left または right です。私の意見では、これは想要低于的那個浮動盒子のフローティング方向によって異なります。 bothの値は、それより前のフローティング ボックスよりも低くなります。

クリアリングの影響の例

A、B、Cの3つのボックスを設置しました

3 つのボックスがすべて左にフロートされている場合:

C が float に設定されていない場合:

Bにclear:both/clear:leftを追加します。

ご覧のとおり、B 自体によって発生したフローティング効果はクリアされ、その上境界線は任何在他之前的浮動盒子的底部下にありますが、非フローティング ボックス C はまだ AB の下にあり、その中のフォントによってフローティング ボックスのためのスペースが確保されています。

親ボックスに疑似要素を追加する::after

ここで、 div(class:box)を使用して 3 つのボックス ABC を囲み、 boxの外側にボックスoutを追加します。ここで、ABC と out はすべてフロートするように設定されます。今はこんな感じです:

out のフロートを削除します。

これは当然のことです。

ボックスに疑似要素を追加する

.box::after{
  クリア: 両方;
  高さ:10px;
  幅:10px;
  背景:黄色;
  表示: ブロック;
  コンテンツ: "";
} 

これで外側のボックスoutのフロート効果がクリアされましたが、これはclear:bothフロートをクリアしたからではなく、 after偽元素自体のフロート効果がクリアされ、その前のフローティング ボックスの下になったためです。これにより、 boxの高さが崩れなくなり、 outboxのすぐ下になりました。これが通常のドキュメント フローです。

## 仕上げる

CSSの基礎知識ですが、これまでじっくり読んだことがありませんでした。今回は整理してみました。間違いなどありましたら、この記事をご覧になった方はご指摘いただけると幸いです。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

<<:  MySQL 全文インデックスガイド

>>:  Docker ディスク領域クリーニングのソリューション

推薦する

Win10にmysql8.0.15 winx64をインストールしてサーバーに接続する際に問題が発生しました

1. mysql-8.0.15をダウンロード、インストール、設定する1. 公式サイト (https:...

JavaScript を使用してテーブル情報を追加および削除する

JavaScript 入門JavaScript は軽量なインタープリタ型の Web 開発言語です。言...

Webpack コンポーネントの使用状況統計を実装するための 50 行のコード

背景最近、リーダーからコンポーネント ライブラリを構築するように依頼があり、プロジェクトで現在使用さ...

line-height=height要素の高さだがテキストが垂直方向に中央揃えされない問題を解決する

まず、行の高さが要素の高さと等しい場合にテキストが垂直方向に中央揃えにならない理由を説明します。実際...

MySQL を暗号化および復号化するいくつかの方法 (要約)

目次前面に書かれた双方向暗号化エンコード/デコードAES_ENCRYPT/AES_DECRYPT D...

Element-ui レイアウト (行と列コンポーネント) の実装

目次基本的な手順と使用方法行コンポーネントの分析レンダリング機能ソースコード分析Col成分の分析コン...

検証コード干渉を実装する js (動的)

この記事の例では、検証コードの動的干渉を実装するためのjsの具体的なコードを共有しています。具体的な...

HTMLの基礎知識:ウェブページの基礎知識

HTML は Hypertext Markup Language の略です。これは、実際のプレゼンテ...

60件のページング事例と優れた実践例を推奨

<br />構造と階層により複雑さが軽減され、読みやすさが向上します。記事やサイトが整理...

MacOS Catalina アップグレード後の VMware ブラック スクリーン問題に対する完璧な解決策の詳細な説明

MacOS Catalina アップグレード後の VMware ブラック スクリーンに対する完璧なソ...

jconsole を使用してリモート Tomcat サービスを監視する方法

JConsoleとはJConsole は Java 5 で導入されました。 JConsole は、コ...

MySQLインデックスが失敗するいくつかの状況の分析

1. 最左プレフィックス原則 - 複数の列にインデックスが付けられている場合は、最左プレフィックス原...

シンプルなID生成戦略: MySQLテーブルからグローバルに一意のIDを生成する実装

グローバル ID を生成する方法は多数あります。ここでは簡単な解決策を紹介します。MySQL の自動...

Ubuntu 20.04 をインストールした後に行うべきこと (初心者向けガイド)

Ubuntu 20.04 がリリースされ、多くの新機能が導入されましたが、慣れていない機能も多くあ...

MySQL で 1000 万件のレコードをすばやくクエリする方法

目次通常のページングクエリ最適化する方法大きなオフセット使用ID制限大量データ問題の最適化通常のペー...