検索
ホームページウェブフロントエンドCSSチュートリアルCSS のヒント: フロートをクリアする

CSSclear floatとは何ですか?

IE 以外のブラウザ (Firefox など) では、コンテナの高さが自動で、コンテナのコンテンツにフローティング (フロートは左または右) 要素がある場合、この場合は高さコンテナの高さに合わせて自動的に伸縮することができないため、コンテンツがコンテナの外にオーバーフローし、レイアウトに影響を及ぼします (または破壊することもあります)。この現象をfloatオーバーフローといい、これを防ぐために行われるCSSの処理をCSSクリアフロートといいます。

W3C の例を引用すると、ニュース コンテナーはフローティング要素を囲みません。


.news {
  background-color: gray;
  border: solid 1px black;
  }

.news img {
  float: left;
  }

.news p {
  float: right;
  }<p><img  src="/static/imghwm/default1.png" data-src="news-pic.jpg" class="lazy" alt="CSS のヒント: フロートをクリアする" ></p><p>some text</p>

フローティングメソッドをクリアする

方法 1: クリア属性を持つ空の要素を使用する

を実行し、CSS で .clear{clear:both;} 属性を割り当ててフロートをクリアします。クリーニングには
または
を使用することもできます。


.news {
  background-color: gray;
  border: solid 1px black;
  }

.news img {
  float: left;
  }

.news p {
  float: right;
  }

.clear {
  clear: both;
  }<p><img  src="/static/imghwm/default1.png" data-src="news-pic.jpg" class="lazy" alt="CSS のヒント: フロートをクリアする" ></p><p>some text</p><p></p>
利点: シンプル、コードが少ない、ブラウザとの互換性が良い。

短所: 多くの非セマンティックな

html要素を追加する必要があり、コードは十分に洗練されておらず、後で保守するのは簡単ではありません。

方法 2: CSS オーバーフロー属性

を使用して、フローティング要素のコンテナーに overflow:hidden; または overflow:auto; を追加します。また、IE6 では hasLayout をトリガーする必要があります。たとえば、親要素のコンテナの幅と高さを設定するか、zoom:1 を設定します。

オーバーフロー属性を追加した後、フローティング要素はコンテナーレイヤーに戻り、コンテナーの高さが上がり、フローティング要素をクリーンアップする効果が得られます。


 some text

方法 3: 浮動要素のコンテナに float を追加します

また、内部の float をクリアするには、

float 属性を浮動要素のコンテナに追加します。全体としてフロートになるため、レイアウトに影響を与えるため、推奨されません。

方法4:隣接要素処理を使用する

何もせず、フローティング要素の後ろの要素にclear属性を追加します。


.news {
  background-color: gray;
  border: solid 1px black;
  }

.news img {
  float: left;
  }

.news p {
  float: right;
  }

.content{
  clear:both;
  }<p><img  src="/static/imghwm/default1.png" data-src="news-pic.jpg" class="lazy" alt="CSS のヒント: フロートをクリアする" ></p><p>some text</p><p></p>

方法 5: CSS :after pseudo-element

を :after pseudo-element と組み合わせて使用​​します (これは疑似クラスではなく、最も近い要素を表す疑似要素であることに注意してください)ここでの IEhack は、hasLayout をトリガーすることを指します。

フローティング要素のコンテナに clearfix クラスを追加し、このクラスに :after 疑似要素を追加して、要素の最後に非表示のブロック要素 (Block 要素) を追加してフロートをクリーンアップします。


.news {
  background-color: gray;
  border: solid 1px black;
  }

.news img {
  float: left;
  }

.news p {
  float: right;
  }

.clearfix:after{
  content: "020"; 
  display: block; 
  height: 0; 
  clear: both; 
  visibility: hidden;  
  }

.clearfix {
  /* 触发 hasLayout */ 
  zoom: 1; 
  }<p><img  src="/static/imghwm/default1.png" data-src="news-pic.jpg" class="lazy" alt="CSS のヒント: フロートをクリアする" ></p><p>some text</p>
CSS疑似要素でコンテナの内部要素の末尾に非表示のスペース「020」またはドット「.」を追加し、floatをクリアするclear属性を付与します。 IE6 および IE7 ブラウザの場合、haslayout をトリガーするには、zoom:1 を clearfix クラスに追加する必要があることに注意してください。

概要

上記の例を通して、フロートをクリアする方法が 2 つのカテゴリに分類できることが簡単にわかります:

1 つは、clear: Both 属性の追加を含む、clear 属性を使用する方法です。浮動要素の最後に空の p を使用して要素を閉じます。実際、:after 疑似要素を使用する方法は、ドットの内容と clear: Both 属性を含む要素を追加することによっても実現されます。要素の終わり。

2つ目は、フローティング要素の親要素のBFC(Block Formatting Contexts、ブロックレベルのフォーマットコンテキスト)をトリガーして、親要素にフローティング要素を含めることができるようにすることです。

推奨 ウェブページのメインレイアウト中に :after 疑似要素メソッドを使用し、フロートをクリーンアップする主な方法として使用します。 ul (隠れたオーバーフロー要素の問題に注意してください) ; フローティング要素の場合は、ボディ内の隣接する要素を使用して前のフロートをクリアすることで、内部フロートを自動的にクリアできます。

最後に、比較的完璧な :after 疑似要素メソッドを使用してフロートをクリーンアップし、ドキュメントの構造をより明確にすることができます。

以上がCSS のヒント: フロートをクリアするの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
@keyframesや@mediaなど、 @rulesにはどの程度の特異性がありますか?@keyframesや@mediaなど、 @rulesにはどの程度の特異性がありますか?Apr 18, 2025 am 11:34 AM

先日、この質問がありました。私の最初の考えは、奇妙な質問です!特異性はセレクターに関するものであり、アットレールはセレクターではないので、...無関係ですか?

@mediaと@supportのクエリをネストできますか?@mediaと@supportのクエリをネストできますか?Apr 18, 2025 am 11:32 AM

はい、あなたはできます、そしてそれは本当にどの順序で重要ではありません。 CSSプリプロセッサは必要ありません。通常のCSSで動作します。

クイックガルプキャッシュバストクイックガルプキャッシュバストApr 18, 2025 am 11:23 AM

CSSやJavaScript(および画像とフォントなど)などのアセットにファーアウトキャッシュヘッダーを確実に設定する必要があります。それはブラウザを伝えます

CSSの品質と複雑さを監視するスタックを探してCSSの品質と複雑さを監視するスタックを探してApr 18, 2025 am 11:22 AM

多くの開発者は、CSSコードベースを維持する方法について書いていますが、そのコードベースの品質をどのように測定するかについて多くの人が書いていません。確かに、私たちは持っています

データリストは、値を強制せずに値を提案するためのものですデータリストは、値を強制せずに値を提案するためのものですApr 18, 2025 am 11:08 AM

短い任意のテキストを受け入れるために必要なフォームを持っていたことがありますか?名前などのように。それはまさにそのためのものです。たくさんあります

チューリッヒでのフロント会議チューリッヒでのフロント会議Apr 18, 2025 am 11:03 AM

私は、フロント会議のためにスイスのチューリッヒに向かうことにとても興奮しています(その名前とURLが大好きです!)。私はこれまでスイスに行ったことがないので、興奮しています

CloudFlareワーカーとのフルスタックサーバーレスアプリケーションを構築しますCloudFlareワーカーとのフルスタックサーバーレスアプリケーションを構築しますApr 18, 2025 am 10:58 AM

ソフトウェア開発における私のお気に入りの開発の1つは、サーバーレスの出現です。詳細に行き詰まる傾向がある開発者として

NUXTアプリケーションで動的ルートを作成しますNUXTアプリケーションで動的ルートを作成しますApr 18, 2025 am 10:53 AM

この投稿では、私が構築して展開して展開してネットライフを使用して、着信データの動的ルートを作成する方法を示すeコマースストアのデモを使用します。それはかなりです

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ヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

PhpStorm Mac バージョン

PhpStorm Mac バージョン

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

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境