ホームページ ウェブフロントエンド htmlチュートリアル 一般的に使用される CSS フローティングメソッドの長所と短所の分析 (個人的な学習メモ)_html/css_WEB-ITnose

一般的に使用される CSS フローティングメソッドの長所と短所の分析 (個人的な学習メモ)_html/css_WEB-ITnose

Jun 24, 2016 am 11:19 AM

1. 問題ブリック(表示:ブロック)を投げて、まず現象を見る:

HTMLコード構造を分析する:

<div class="outer">    <div class="div1">1</div>    <div class="div2">2</div>    <div class="div3">3</div></div>
ログイン後にコピー

CSSコードスタイルを分析する:

リーリー

ここには最良の情報はありません。 外側の DIV.outer は高さを設定しますが、その内側の要素が浮動しない場合、外側の層の高さは自動的に拡張されることがわかっています。ただし、内部要素をフローティングにすると、以下のような影響が現れます:

(1): 背景が表示されない (2): 境界線が開けない (3): マージン設定値が正しく表示されない

内部要素がフローティングの場合、フローティングがオフになっていない場合、その時点でフローティング要素がドキュメント フローから分離されているため、その親要素にはフローティング内部要素が含まれなくなります。そのため、外側の層を伸ばして開くことはできません。 解決策は次のとおりです (他のコード例を使用してください):

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

.outer{border: 1px solid #ccc;background: #fc9;color: #fff; margin: 50px auto;padding: 50px;}.div1{width: 80px;height: 80px;background: red;float: left;}.div2{width: 80px;height: 80px;background: blue;float: left;}.div3{width: 80px;height: 80px;background: sienna;float: left;}
ログイン後にコピー
原則: IE8 以降でのみサポートされており、 IE 以外のブラウザ: 後、ズーム (属性を使用して変換された IE) は、ie6 と ie7 のフローティングの問題を解決できます。このうち、clear:both; はすべての float をクリアすることを指します。content: '.'; display:block; は FF/chrome/opera/IE8 では必須であり、content() は値を持つことも空にすることもできます。 Visibility:hidden; の機能は、ブラウザがそれを表示するだけでレンダリングできるようにすることで、明確なフローティングを実現できます。

長所: ブラウザのサポートが良好で、奇妙な問題が発生しにくい (現在: Tencent、NetEase、Sina などの大規模な Web サイトで使用されている)

  • 短所: コードが多く、多くの初心者は原理を理解していない、 2 行のコードを組み合わせることでのみ、主流のブラウザーでサポートできるようになります
  • 推奨事項: CSS コードを減らすためにパブリック クラスを定義することをお勧めします。 (空のラベルを閉じるフロートのメソッド コードと比較すると、まだ冗長性があるように見えます。クエリを通じて、Unicode 文字 (U+200B) に「幅ゼロのスペース」があることがわかりました。この文字自体は目に見えないため、省略することも検討できます。空の div を作成し、Float をクリアするために CSS によって改良された clear:both を使用すると、親 div が自動的に高さを取得できるようになります
  • 長所: シンプル、コードが少なく、ブラウザのサポートが優れており、奇妙な問題が発生しにくい
  • 短所: 初心者が多い原理を理解していない; ページにフローティング レイアウトがたくさんある場合は、空の div を大量に追加する必要があります。過去
  • 評価: ★★★☆☆
  • 3. 親 div を定義します overflow:hidden

    <style type="text/css"> .div1{background:#000080;border:1px solid red;} .div2{background:#800080;border:1px solid red;height:100px;margin-top:10px} .left{float:left;width:20%;height:200px;background:#DDD} .right{float:right;width:30%;height:80px;background:#DDD}      /*清除浮动代码*/ .clearfloat:after{display:block;clear:both;content:"";visibility:hidden;height:0} .clearfloat{zoom:1}   </style> <div class="div1 clearfloat"> <div class="left">Left</div> <div class="right">Right</div> </div><div class="div2"> div2 </div>
    ログイン後にコピー

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

  • 長所: シンプル、コードが少なく、閲覧が簡単 デバイスのサポートが良好です
  • 短所: サイズを超えると非表示になるため、位置とともに使用できません。オーバーフローする必要がある要素は表示できません
  • 推奨:positionを使用したことがない、またはoverflow:hiddenを深く理解している友人にのみお勧めします
  • 評価: ★★★☆☆
  • 4. overflow:auto

    <style type="text/css"> .div1{background:#000080;border:1px solid red} .div2{background:#800080;border:1px solid red;height:100px;margin-top:10px} .left{float:left;width:20%;height:200px;background:#DDD} .right{float:right;width:30%;height:80px;background:#DDD}      /*清除浮动代码*/ .clearfloat{clear:both}   </style> <div class="div1"> <div class="left">Left</div> <div class="right">Right</div><div class="clearfloat"></div></div><div class="div2"> div2 </div>
    ログイン後にコピー
    原則: width またはzoom:1 を定義する必要があり、高さを定義することはできません。 overflow:auto を使用すると、ブラウザは自動的にフローティング領域の高さをチェックします

    利点: シンプルで少ない。コード、優れたブラウザサポート

  • 欠点: 内部の幅と高さが親 div を超えると、スクロール バーが表示されます。
  • 推奨事項: 推奨されません。スクロール バーを表示する必要がある場合、またはコードにスクロール バーが表示されないようにする場合に使用してください。
  • 評価: ★★☆☆☆
  • 5. 親 div の高さを定義する
  • <style type="text/css"> .div1{background:#000080;border:1px solid red;/*解决代码*/width:98%;overflow:hidden} .div2{background:#800080;border:1px solid red;height:100px;margin-top:10px;width:98%} .left{float:left;width:20%;height:200px;background:#DDD} .right{float:right;width:30%;height:80px;background:#DDD}   </style> <div class="div1"> <div class="left">Left</div> <div class="right">Right</div></div><div class="div2"> div2 </div>
    ログイン後にコピー
    原則: 親 div の高さを手動で定義すると、親 div が高さを自動的に取得できない問題が解決されます

    利点 : コードは簡潔です

  • 短所: 高さは固定されており、正確な高さを指定する必要があります。高さが親 div と異なる場合、問題が発生します。
  • 推奨事項: 推奨されません。推奨 高さ固定レイアウトを使用する場合に使用します
  • 評価: ★★☆☆☆
  • このウェブサイトの声明
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

    ホット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

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

    SublimeText3 中国語版

    SublimeText3 中国語版

    中国語版、とても使いやすい

    ゼンドスタジオ 13.0.1

    ゼンドスタジオ 13.0.1

    強力な PHP 統合開発環境

    ドリームウィーバー CS6

    ドリームウィーバー CS6

    ビジュアル Web 開発ツール

    SublimeText3 Mac版

    SublimeText3 Mac版

    神レベルのコード編集ソフト(SublimeText3)

    HTML5のクロスブラウザー互換性のベストプラクティスは何ですか? HTML5のクロスブラウザー互換性のベストプラクティスは何ですか? Mar 17, 2025 pm 12:20 PM

    記事では、HTML5クロスブラウザーの互換性を確保するためのベストプラクティスについて説明し、機能検出、プログレッシブエンハンスメント、およびテスト方法に焦点を当てています。

    &lt; Progress&gt;の目的は何ですか 要素? &lt; Progress&gt;の目的は何ですか 要素? Mar 21, 2025 pm 12:34 PM

    この記事では、HTML&lt; Progress&gt;について説明します。要素、その目的、スタイリング、および&lt; meter&gt;との違い要素。主な焦点は、&lt; Progress&gt;を使用することです。タスクの完了と&lt; Meter&gt; statiの場合

    &lt; datalist&gt;の目的は何ですか 要素? &lt; datalist&gt;の目的は何ですか 要素? Mar 21, 2025 pm 12:33 PM

    この記事では、HTML&lt; Datalist&GT;について説明します。オートコンプリートの提案を提供し、ユーザーエクスペリエンスの改善、エラーの削減によりフォームを強化する要素。

    HTML5フォーム検証属性を使用してユーザー入力を検証するにはどうすればよいですか? HTML5フォーム検証属性を使用してユーザー入力を検証するにはどうすればよいですか? Mar 17, 2025 pm 12:27 PM

    この記事では、ブラウザのユーザー入力を直接検証するために、必要、パターン、MIN、MAX、および長さの制限などのHTML5フォーム検証属性を使用して説明します。

    &lt; meter&gt;の目的は何ですか 要素? &lt; meter&gt;の目的は何ですか 要素? Mar 21, 2025 pm 12:35 PM

    この記事では、html&lt; meter&gt;について説明します。要素は、範囲内でスカラーまたは分数値を表示するために使用され、Web開発におけるその一般的なアプリケーション。それは差別化&lt; Meter&gt; &lt; Progress&gt;およびex

    ビューポートメタタグとは何ですか?レスポンシブデザインにとってなぜそれが重要なのですか? ビューポートメタタグとは何ですか?レスポンシブデザインにとってなぜそれが重要なのですか? Mar 20, 2025 pm 05:56 PM

    この記事では、モバイルデバイスのレスポンシブWebデザインに不可欠なViewportメタタグについて説明します。適切な使用により、最適なコンテンツのスケーリングとユーザーの相互作用が保証され、誤用が設計とアクセシビリティの問題につながる可能性があることを説明しています。

    &lt; iframe&gt;の目的は何ですか タグ?使用する際のセキュリティ上の考慮事項は何ですか? &lt; iframe&gt;の目的は何ですか タグ?使用する際のセキュリティ上の考慮事項は何ですか? Mar 20, 2025 pm 06:05 PM

    この記事では、&lt; iframe&gt;外部コンテンツをWebページ、その一般的な用途、セキュリティリスク、およびオブジェクトタグやAPIなどの代替案に埋め込む際のタグの目的。

    HTMLは初心者のために簡単に学ぶことができますか? HTMLは初心者のために簡単に学ぶことができますか? Apr 07, 2025 am 12:11 AM

    HTMLは、簡単に学習しやすく、結果をすばやく見ることができるため、初心者に適しています。 1)HTMLの学習曲線はスムーズで簡単に開始できます。 2)基本タグをマスターして、Webページの作成を開始します。 3)柔軟性が高く、CSSおよびJavaScriptと組み合わせて使用​​できます。 4)豊富な学習リソースと最新のツールは、学習プロセスをサポートしています。

    See all articles