DIV+CSS フロートのクリアは、ページ レイアウトにおける一般的な問題です。すべての専門家が独自の方法を持っていると思います。今日は、いくつかの一般的な方法を要約します (追記: これはオリジナルではありません。私自身の要約も同様です)。私自身の内在化プロセス)、それがあなたのお役に立てれば幸いです。ブログガーデンプラットフォームに感謝します! ---- <夢のあるフロントエンド初心者>より
DIV+CSS フローティング効果とは、親要素の高さが定義されていない場合、子要素がすべてテキスト フローから浮き出ることを意味します。親要素がテキスト フローからはみ出してしまう (追記: 通常の状況では、親要素の高さは子要素によってサポートされているか、一部の子要素が浮いてテキストから外れてしまいます)。流れが生じ、他の要素のレイアウトが乱れます。
DIV+CSS フロートをクリアする一般的な方法は次のとおりです:
1. フローティングされていない子要素の CSS に両方を追加します。子要素にフロートがある場合は、空の子要素を追加します。 CSS は、clear:both; を追加します。これにより、左右のフローティング子要素をクリアして親要素の高さを再サポートできるようになり、フローティング要素をクリアする効果が得られます。コードと効果は次のとおりです:
<style type="text/css"> .fl{float:left;} .demo{background:#ccc;} .item1{background:#F571E3;height:100px;width:100px;} .item2{background:#21B2F7;height:200px;width:100px;clear: both;} </style> </head> <body> <h2>用 clearfix 清除浮动</h2> <div class="demo"> <div class="fl item1"></div> <div class="item2"></div> </div> </body>
フロートをクリアする前に、item1 が左にフローティングされる効果 (このとき、親要素の高さはアンフロートされた item2 要素の高さによって引き伸ばされます):
フロートをクリアする前に、item1 は右にフロートします。 効果 (このとき、親要素の高さは、フローティングされていない item2 要素の高さだけ引き伸ばされます):
フロートをクリアした後の効果 (DIV はブロックであるため、 level 要素と排他的な行を占有するため、item2 は下の行になります。このとき、親要素の高さは item1 要素と item2 要素の高さによって引き伸ばされます):
2.子要素がフローティングの場合は、親要素の CSS に overflow: hidden; を追加します (子要素がすべてフローティングではない場合、フローティング要素は親要素の高さを拡張しませんが、フローティング要素によって生じるレイアウトは拡張されます)。ただし、このメソッドでは、position を使用して親要素を配置することはできません。そうでない場合は機能しません。コードと効果は次のとおりです。
<style type="text/css"> .fl{float:left;} .demo{background:#ccc;overflow: hidden;} .item1{background:#F571E3;height:100px;width:100px;} .item2{background:#21B2F7;height:200px;width:100px;} </style> </head> <body> <div class="demo"> <div class="fl item1"></div> <div class="fl item2"></div> </div> </body>
フロートをクリアする前の効果は、親要素の高度な折りたたみのため、背景の背景には効果がありません。
後の効果。フロートをクリアします:
3. 疑似クラスを追加します: 後、親要素にズームします。 コードと効果は次のとおりです:
<style type="text/css"> .fl{float:left;} .demo{background:#ccc;zoom: 1;} .demo:after{display:block;clear:both;content:"";visibility:hidden;height:0}.item1{background:#F571E3;height:100px;width:100px;} .item2{background:#21B2F7;height:200px;width:100px;} </style> </head> <body> <div class="demo"> <div class="fl item1"></div> <div class="fl item2"></div> </div> </body>
親の高度な折りたたみのため、エフェクトをクリアします。要素、背景: #ccc; は効果がありません:
float をクリアした後の効果:
4. ブートストラップを使用している場合は、clearfix クラスをその親要素に追加できます。コードと効果は次のとおりです:
<style type="text/css"> .fl{float:left;} .demo{background:#ccc;} .item1{background:#F571E3;height:100px;width:100px;} .item2{background:#21B2F7;height:200px;width:100px;} </style> </head> <body> <div class="demo clearfix"> <div class="fl item1"></div> <div class="fl item2"></div> </div> </body>
フロートをクリアした後の効果:
上記の方法にはそれぞれ長所と短所があり、ご自身の理解に応じて使用することができます。また、親要素をフロートさせる、親要素にテーブルを表示させるなど、フロートをクリアする他の方法もありますが、個人的には使用をお勧めしません。
上記の紹介がお役に立てば幸いです。間違いがあれば修正してください。ありがとうございます。 ----<夢を持ったフロントエンド初心者>より