CSS でフロートをクリアするための完全ガイド (要約)

CSS でフロートをクリアするための完全ガイド (要約)

1. 親divは疑似クラスafterとzoomを定義します

<スタイル タイプ="text/css"> 
   .div1{背景:#000080;境界線:1px 赤一色;}
   .div2{背景:#800080;境界線:1px 赤一色;高さ:100px;上余白:10px}
   
   .left{float:left;幅:20%;高さ:200px;背景:#DDD}
   .right{float:right;幅:30%;高さ:80px;背景:#DDD}
   
   /*フローティングコードをクリア*/
   .clearfloat:after{display:block;clear:both;content:"";visibility:hidden;height:0}
   .clearfloat{ズーム:1}
   </スタイル> 
<div class="div1 クリアフロート"> 
<div class="left">左</div> 
<div class="right">右</div> 
</div>
<div class="div2">
   div2
   </div>

原則: :after は IE8 以上と IE 以外のブラウザでのみサポートされます。原則は方法 2 と似ています。Zoom (IE 変換には属性があります) は、IE6 と IE7 のフローティング問題を解決できます。

利点: ブラウザのサポートが良好で、奇妙な問題が発生する可能性が低い (現在: Tencent、NetEase、Sina などの大規模な Web サイトで使用されています)

デメリット: コードが多すぎるため、初心者の多くは原理を理解していません。主流のブラウザでサポートされるようにするには、2 つのコードを一緒に使用する必要があります。

推奨事項: CSS コードを削減するために共通クラスを定義することをお勧めします。

評価: ★★★★☆

2. 最後に空のdivタグclear:bothを追加します。

<スタイル タイプ="text/css"> 
   .div1{背景:#000080;境界線:1px 赤一色}
   .div2{背景:#800080;境界線:1px 赤一色;高さ:100px;上余白:10px}
   
   .left{float:left;幅:20%;高さ:200px;背景:#DDD}
   .right{float:right;幅:30%;高さ:80px;背景:#DDD}
   
   /*フローティングコードをクリア*/
   .clearfloat{クリア:両方}
   </スタイル> 
<divクラス="div1"> 
<div class="left">左</div> 
<div class="right">右</div>
<div class="clearfloat"></div>
</div>
<div class="div2">
   div2
   </div>

原則:空のdivを追加し、CSSのclear:bothメソッドを使用してフロートをクリアし、親divが自動的に高さを取得できるようにします。

利点: シンプル、コードが少ない、ブラウザのサポートが良好、奇妙な問題が発生する可能性が低い

デメリット: 多くの初心者は原理を理解していません。ページにフローティングレイアウトが多数ある場合、多くの空のdivが追加され、人々に不快感を与えます。

推奨事項: 推奨されませんが、この方法は以前はフロートをクリアする方法として使用されていました。

評価: ★★★☆☆

3. 親divが高さを定義する

<スタイル タイプ="text/css"> 
   .div1{background:#000080;border:1px solid red;/*ソリューションコード*/height:200px;}
   .div2{背景:#800080;境界線:1px 赤一色;高さ:100px;上余白:10px}
   
   .left{float:left;幅:20%;高さ:200px;背景:#DDD}
   .right{float:right;幅:30%;高さ:80px;背景:#DDD}
   </スタイル> 
<divクラス="div1"> 
<div class="left">左</div> 
<div class="right">右</div> 
</div>
<div class="div2">
   div2
   </div>

原則: 親divの高さを手動で定義すると、親divが自動的に高さを取得できない問題が解決されます。

利点: シンプル、コードが少ない、習得が簡単

デメリット: 高さが固定されたレイアウトにのみ適しています。正確な高さを指定する必要があります。高さが親 div と異なる場合、問題が発生します。

推奨事項: 推奨されません。高さが固定されたレイアウトにのみ推奨されます。

評価: ★★☆☆☆

4. 親divはoverflow:hiddenを定義します

<スタイル タイプ="text/css"> 
   .div1{background:#000080;border:1px solid red;/*ソリューションコード*/width:98%;overflow:hidden}
   .div2{背景:#800080;境界線:1px 赤一色;高さ:100px;上余白:10px;幅:98%}
   
   .left{float:left;幅:20%;高さ:200px;背景:#DDD}
   .right{float:right;幅:30%;高さ:80px;背景:#DDD}
   </スタイル> 
<divクラス="div1"> 
<div class="left">左</div> 
<div class="right">右</div>
</div>
<div class="div2">
   div2
   </div>

原則: width または zoom:1 を定義する必要があり、height を定義することはできません。overflow:hidden を使用すると、ブラウザはフローティング領域の高さを自動的にチェックします。

利点: シンプル、コードが少ない、ブラウザのサポートが良好

デメリット: 制限を超えるサイズは非表示になるため、位置とともに使用できません。

推奨事項: これは、position を使用したことがないか、overflow:hidden を深く理解している場合にのみ推奨されます。

評価: ★★★☆☆

5. 親divはoverflow:autoを定義する

<スタイル タイプ="text/css"> 
   .div1{background:#000080;border:1px solid red;/*ソリューションコード*/width:98%;overflow:auto}
   .div2{背景:#800080;境界線:1px 赤一色;高さ:100px;上余白:10px;幅:98%}
   
   .left{float:left;幅:20%;高さ:200px;背景:#DDD}
   .right{float:right;幅:30%;高さ:80px;背景:#DDD}
   </スタイル> 
<divクラス="div1"> 
<div class="left">左</div> 
<div class="right">右</div>
</div>
<div class="div2">
   div2
   </div>

原則: width または zoom:1 を定義する必要があり、height を定義することはできません。overflow:auto を使用すると、ブラウザはフローティング領域の高さを自動的にチェックします。

利点: シンプル、コードが少ない、ブラウザのサポートが良好

欠点: 内部の幅と高さが親 div を超えると、スクロール バーが表示されます。

推奨事項: 推奨されません。スクロール バーを表示する必要がある場合、またはコードによってスクロール バーが表示されないようにする場合にのみ、この方法を使用してください。

評価: ★★☆☆☆

6. 親divも一緒にフロートする

<スタイル タイプ="text/css"> 
   .div1{background:#000080;border:1px solid red;/*ソリューションコード*/width:98%;margin-bottom:10px;float:left}
   .div2{background:#800080;border:1px solid red;height:100px;width:98%;/*ソリューションコード*/clear:both}
   
   .left{float:left;幅:20%;高さ:200px;背景:#DDD}
   .right{float:right;幅:30%;高さ:80px;背景:#DDD}
   </スタイル> 
<divクラス="div1"> 
<div class="left">左</div> 
<div class="right">右</div>
</div>
<div class="div2">
   div2
   </div>

原則:すべてのコードは一緒に浮かび上がり、全体となる

利点: 利点なし

デメリット: 新たな浮上問題が生じます。

推奨事項: 推奨されませんが、理解のためだけに使用します。

評価: ★☆☆☆☆

7. 親divはdisplay:tableを定義する

<スタイル タイプ="text/css"> 
   .div1{background:#000080;border:1px solid red;/*ソリューションコード*/width:98%;display:table;margin-bottom:10px;}
   .div2{背景:#800080;境界線:1px 赤一色;高さ:100px;幅:98%;}
   
   .left{float:left;幅:20%;高さ:200px;背景:#DDD}
   .right{float:right;幅:30%;高さ:80px;背景:#DDD}
   </スタイル> 
<divクラス="div1"> 
<div class="left">左</div> 
<div class="right">右</div>
</div>
<div class="div2">
   div2
   </div>

原則: div属性をテーブルに変換する

利点: 利点なし

デメリット: 新たな未知の問題が発生する

推奨: 推奨されませんが、理解のためにのみ使用してください

評価: ★☆☆☆☆

8. 最後にbrタグclear:bothを追加する

<スタイル タイプ="text/css"> 
   .div1{background:#000080;border:1px solid red;margin-bottom:10px;zoom:1}
   .div2{背景:#800080;境界線:1px 赤一色;高さ:100px}
   
   .left{float:left;幅:20%;高さ:200px;背景:#DDD}
   .right{float:right;幅:30%;高さ:80px;背景:#DDD}
   
   .clearfloat{クリア:両方}
   </スタイル> 
<divクラス="div1"> 
<div class="left">左</div> 
<div class="right">右</div>
<br class="clearfloat" />
</div>
<div class="div2">
   div2
   </div>

原則: 親divはIEのフローティング問題を解決するためにzoom:1を定義し、最後にbrタグclear:bothを追加します。

推奨: 推奨されませんが、理解のためにのみ使用してください

評価: ★☆☆☆☆

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

<<:  mysql データ型変換の実装

>>:  W3C チュートリアル (9): W3C XPath アクティビティ

推薦する

MySQL の計画タスクとイベント スケジュール例の分析

この記事では、例を使用して、MySQL の計画されたタスクとイベントのスケジュールについて説明します...

大量のデータを含むエレメントのシャトルボックスで「すべて選択」をクリックするとスタックする問題の解決方法

目次解決策1: EUIの転送コンポーネントをコピーして変更し、プロジェクトディレクトリに導入する解決...

HTML シンプルな Web フォーム作成例の紹介

<input> はユーザー情報を収集するために使用され、終了ステートメントはありません。...

エコー後に要素編集フォームel-radioが選択できない問題を解決します

目次序文質問オンラインソリューション序文この記事の内容は私がこの業界に入ったときのメモを元にしている...

DockerプライベートイメージライブラリとAlibaba CloudオブジェクトストレージOSSの簡単な分析

Docker プライベートイメージライブラリDockerプライベートイメージライブラリとAlibab...

Mysql 5.7.17 をインストールした後、MySQL にログインするチュートリアル

mysql-5.7.17 のインストールについては記事の下部で紹介されているので、参考にしてください...

JS 配列の重複を排除する 9 つの高度な方法 (実証済みで効果的)

序文一般的な方法はここには記載されていませんが、等しいかどうかを判断するための二重ループや、比較のた...

MySQL 10進数符号なし更新負数を0に変換

今日、インターフェースの同時実行の問題を検証したところ、これまでredisで解決していた同時実行のプ...

XHTML 入門チュートリアル: テキストの書式設定と特殊文字

<br />このセクションでは、XHTML でテキストの書式設定と特殊文字を実装する方法...

この記事はJavaScriptの変数とデータ型を理解するのに役立ちます

目次序文:親切なヒント:変数1. 免責事項2. 譲渡3. 2つの小さな文法上の詳細変数の命名規則なぜ...

Vue.js ディレクティブのカスタム命令の詳細な説明

デモコマンドをカスタマイズするVue カスタム ディレクティブの構文は次のとおりです。 Vue.di...

Dockerパッケージイメージの実装と構成の変更

最近、Docker の学習や実際の運用で多くの問題に遭遇したので、それを記録するためにブログを書きま...

Mac で docker と kubectl の自動補完コマンドを追加する方法

kubectl の紹介kubectl は、k8s クラスターを操作するためのコマンドライン ツールで...

Java は Apache.POI を使用して HSSFWorkbook を Excel にエクスポートします

Apache.POI の HSSFWorkbook を使用して Excel にエクスポートします。具...