CSS3 クリアフロートメソッドの例

CSS3 クリアフロートメソッドの例

1. 目的

この記事を通じて、誰もがフロートをクリアする原理と方法を理解し、最終的にこの記事が最良であると考える方法を思いつくことができます。

II. はじめに

1. フローティングの本来の意味を紹介し、復元する
2. 実際の開発でフローティングがよく使用される用途を説明する
3. 質問:なぜ浮動小数点数をクリアする必要があるのか
4. 回答: フローティングをクリアする方法とよく使われるいくつかの方法
5. 結論:本論文では、最良の方法を検討する。

3. 本文

1. 浮かぶことの本来の意味

フローティングの本来の目的は、テキストを画像の周囲に折り返すことだけでした。

上図から、画像を左フロートに設定すると、通常のドキュメントフローから画像を抽出できることがわかります。後続の要素はフローティング要素の元の位置を無視するため、ブロック要素として表示される span タグが画像の下に挿入されていることがわかります。ただし、テキストは画像の下に埋め込まれないことがわかります。これは、テキストで画像を囲むというフローティングの最も純粋な意味だからです (テキストがフローティング要素の下に挿入されない理由については、インターネット上でいくつかの議論があります。検索してください。この記事では、これ以上詳しく説明しません)。

PS: フローティング要素の下にテキストを挿入したい場合は、絶対位置を設定することで挿入できます。

// HTML コード <セクション>
    <div class="origin1">
      ![画像](http://upload-images.jianshu.io/upload_images/2944582-8c9f0eba7dce2e55.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
      <span>私が大きなテキストだと想像してください</span>
    </div>
    <div class="float1">
      ![画像](http://upload-images.jianshu.io/upload_images/2944582-8c9f0eba7dce2e55.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
      <span>私が大きなテキストだと想像してください</span>      
    </div>
  </セクション>
// css code.origin1 span {
  表示: ブロック;
  幅: 250ピクセル;
  高さ: 120px;
  背景色: #78f182;  
}

.float1 画像{
  フロート: 左;
}

.float1 スパン {
  表示: ブロック;
  幅: 250ピクセル;
  高さ: 120px;
  背景色: #78f182;
}

2. フローティングはどのような目的でよく使用されますか?

フローティングではブロック要素を並べて表示できるため、ナビゲーション バーやコンテンツ ブロック バーなどのレイアウトによく使用されます。

// HTML コード <section class="section2">
    <ul>
      <li><a href="#">製品センター</a></li>
      <li><a href="#">サービスセンター</a></li>
      <li><a href="#">ニュースセンター</a></li>
      <li><a href="#">お客様の声</a></li>
      <li><a href="#">採用</a></li>
    </ul>
  </セクション>
//cssコード.section2 li{
  リストスタイル: なし;
  フロート: 左;
  パディング: 20px;
  高さ: 20px;
  背景色: #1249c3;
  右境界線: 1px 実線 #a0a2a2;
}

.section2 li a {
  色: #fff;
}

3. 浮動小数点をクリアする必要がある理由

上の図から、3 つのセクションが左にフロートした後、通常のドキュメント フローから外れているため、親要素 ul は高さを設定せずに子要素によって拡張できないことがわかります (ul の padding を 10px に設定したため、背景色が見えています)。そのため、後で新しい要素を追加すると、自然に ul の後ろ、つまり 3 つのフロート セクションの下に挿入されます。
これは私たちが望んでいることではないため、フロートをクリアする必要があります。

// HTML コード <ul>
      <li><p>インタラクティブ セクションli</p></li>
      <li><p>学習セクション</p></li>
      <li><p>メッセージボード</p></li>
      私は3つのセクションの外側にラップされるべき親要素ulです
    </ul>

    <div class="new">私はulに続く新しいdivです</div>
//cssコードul{
  パディング: 20px;
  背景色: #b7db05;
}

ul li {
  幅: 200ピクセル;
  高さ: 200px;
  背景色: #e3e3e3;
  右マージン: 20px;
  テキスト配置: 中央;
  フロート: 左;
}

。新しい {
  高さ: 50px;
  背景色: #1be751;
}

4. フローティングをクリアする方法

(1)最後のフロートli要素の後に空のブロック要素divを追加し、clear:bothを設定してすべてのフロートをクリアします。

// HTML コード <ul>
      <li><p>インタラクティブ セクションli</p></li>
      <li><p>学習セクション</p></li>
      <li><p>メッセージボード</p></li>
      私は3つのセクションの外側にラップされるべき親要素ulです
      <div style="clear:both;"></div> // コードを追加</ul>

    <div class="new">私はulに続く新しいdivです</div> 

効果: ul の後ろにある div 要素は、実際にフローティング要素の下に配置することができ、マージン、パディングなどの設定は、フローティング要素の下の境界線に対しても行われます。

デメリット: 構造上意味のない冗長なタグが存在します。

(2)親要素ulのoverflow: hiddenまたはoverflow: autoを設定します。

//cssコードul{
  パディング: 20px;
  背景色: #e7a5b8;
  オーバーフロー: 非表示;
} 

効果: ul 以降の要素については、フローティング要素の下に順番に配置できます。
デメリット: このオーバーフロー メソッドを使用すると、配置を使用する要素に影響する可能性があります。ul の範囲内では余分な部分が非表示になるため、配置された要素が ul を超える範囲内にある場合は非表示になります。

(3)疑似クラス方式を使用して、最後のフローティング要素の後にclear:bothを追加します。

// css コード ul:after {
  コンテンツ: "";
  クリア: 両方;
  表示: ブロック;
} 

効果: 追加の効果や意味的に誤った新しいタグなしで、フローティングの影響が効果的に排除されます。
デメリット: まだ見つかっていません。

IV. 結論

まとめると、この記事では、after 疑似クラスを使用してフローティングの影響を解消するのが最善の方法であると考えています。皆さんの議論をお待ちしています。

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

<<:  Docker ロード後にイメージ名が none になる問題の解決方法

>>:  HTML ウェブページ画像タグ

推薦する

vue-cli を使用してプロジェクトを作成し、webpack でパッケージ化する方法

1. 環境を準備する(Node.jsをダウンロードし、環境変数を設定する) 2. vue-cliをグ...

JavaScript 構造化代入の詳細な説明

目次コンセプト配列の分割値を個別に宣言して割り当てるデフォルト値の構造化解除変数値の交換関数によって...

MySQLのジョイントインデックス機能の分析と使用例

この記事では、例を使用して、MySQL 共同インデックスの機能と使用方法を説明します。ご参考までに、...

CSS スティッキーレイアウトを使用してヘッダーを上部に配置する方法

適用シナリオ:新しい要件の 1 つはアンケート調査を行うことですが、必然的に多くの質問が含まれ、1 ...

シングルサインオン制御を実装するためのVueの完全なコード

参考までに、Vue シングル サインオンのデモをご紹介します。詳細を知りたい方のお役に立てれば幸いで...

MySQL マスタースレーブレプリケーションの役割と動作原理の詳細な説明

1. マスタースレーブレプリケーションとは何ですか?マスタースレーブレプリケーションは、スレーブデー...

MySQL 5.7.18 winx64 のインストールと設定方法のグラフィックチュートリアル

圧縮パッケージのインストールは、mysql-5.7 以降、大幅に変更されました。この記事では、mys...

vue-element-adminフレームワークを使用して、バックエンドからメニュー機能を動的に取得します。

目次2. 詳しい説明2.1. asyncRoutesルーティングを追加する2.2. 新しいpermi...

MySQL LOAD_FILE() 関数メソッドの概要

MySQL では、LOAD_FILE() 関数はファイルを読み取り、その内容を文字列として返します。...

初心者がHTMLタグを学ぶ(3)

HTML に触れる初心者は、いくつかの HTML タグを学びます。関連記事:初心者が学ぶ HTML...

CentOS6.5 でファイル共有サービス Samba を構築するチュートリアル

Samba サービス:このコンテンツはサンバサービス学習者の参考用ですケースの説明:企業の管理者は、...

共通要素のデフォルトのマージンとパディング値に関する議論

今日は、さまざまなブラウザでのデフォルト要素のマージン値が何であるかという問題について説明しました。...

js キャンバスは検証コードを実装し、検証コード機能を取得します

この記事の例では、検証コードを作成して取得するためのjsキャンバスの具体的なコードを共有しています。...

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

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

スタイルをより標準化するための CSS の書き方に関する 5 つのヒント

1. CSSをアルファベット順に並べるアルファベット順ではありません:コードをコピーコードは次のとお...