私はずっと前に CSS に触れてきましたが、フローティングについてはいつも非常に混乱していました。私の理解が不十分だったのかもしれませんし、人気のあるチュートリアルに出会っていなかったのかもしれません。
数日前、Xiaocai はついにフローティングの基本原理を理解しました。それを皆さんと共有するのが待ちきれません。
前に書いたもの:
CSS コンテンツが膨大なため、Xiao Cai には最初から最後まで説明するエネルギーがありません。彼はそれを的を絞った方法でしか説明できない。読者が CSS ボックス モデルについては理解しているがフロートについては理解していない場合は、この記事が役に立ちます。
おかずのレベルは限られており、この記事は単なる入門チュートリアルです。不適切な点がある場合はご了承ください。
この記事では、例として div 要素のレイアウトを取り上げます。
チュートリアルを開始します:
まず、div がブロックレベルの要素であり、ページ上の排他的な行を占め、配置されていることを知っておく必要があります。上から下へ、これが伝説の流れです。
以下に示すように:
div1 の幅が非常に小さい場合でも、ページ内の 1 行で対応できることがわかります。 div1 と div2、および div2 も可能です。 div 要素は独自の行にあるため、div1 の後にはランク付けされません。
上記の理論は標準フローの div を参照していることに注意してください。
Xiaocai は、レイアウトがどんなに複雑であっても、基本的な出発点は「複数の div 要素を 1 行に表示する方法」であると考えています。
明らかに、標準ストリームでは需要を満たすことができないため、フロートを使用する必要があります。
フローティングは、div 要素を標準フローから切り離し、標準フローの上にフローティングすることとして理解できます。標準フローと同じレベルではありません。
たとえば、上の図の div2 が浮いたとすると、標準フローから外れますが、div1、div3、div4 はまだ標準フロー内にあるため、div3 が自動的に上に移動します。そして div2 の位置を占めます。ストリームを再構築します。図に示すように:
図からわかるように、div2 は float に設定されているため、標準フローには属さず、div3自動的に上に移動して div2の位置にdiv1、div3、div4を並べて新たなフローを形成します。また、float は標準フローの上に浮いているため、div2 が div3 の一部をブロックし、div3 が「短く」見えるようになります。
ここで div2 は左フローティング (float:left;) を使用していますが、これはフローティングで左に配置されていると理解できます。右にフローティング (float:right;) は当然右に配置されます。ここでの左右とは、ページの左端と右端を指します。
div2 を右にフロートすると、次のようになります。
このとき、div2 は右端に配置されます。ページの一部が削除され、 div3 がブロックされなくなると、読者は上記の div1、div3、および div4 で構成されるフローを明確に確認できます。
これまでのところ、div 要素を 1 つだけフロートさせていますが、さらに多くの要素をフローティングするにはどうすればよいでしょうか?
次に、div2 と div3 の両方に left float を追加します。その効果は次のとおりです。
同様に、div2 と div3 は浮動であるため、 、それらはもはや標準フローに属していないため、div4 は自動的に上に移動して div1 と「新しい」標準フローを形成します。フローティングは標準フロー上でフローティングであるため、div2 は再び div4 をブロックします。
えー、本題に入りますが、div2 と div3 が同時に float に設定されている場合、div3 は div2 に従うことになります。これまで div2 がすべての浮動小数点に設定されていたことに気づいたかどうかはわかりません。たとえば、これは div1 に従いません。したがって、次の重要な結論を導き出すことができます。
div 要素 A が浮動小数点であり、A 要素の前の要素も浮動小数点である場合、A 要素は前の要素に続きます (これら 2 つの要素を 1 つの行に配置できない場合、A 要素は次の行に押し込まれます); A 要素の前の要素が標準フロー内の要素である場合、A の相対的な垂直位置は変わりません。つまり、A の上部は常に前の要素の下部と位置合わせされます。
div の順序は、HTML コード内の div の順序によって決まります。
ページの端に近い端が表面、ページの端から遠い端が裏面です。
読者の理解を助けるために、さらにいくつかの例を示します。
div2、div3、div4 を 左 フローティングに設定すると、効果は次のようになります。
によると上記の結論については、Xiaocai に従って理解してください。 div4 の分析から開始すると、上位要素 div3 が浮動していることがわかり、div4 は div3 に従うことになります。div3 は、上位要素 div2 も浮動であることがわかり、div3 は div2 に従うことになります。 ; そして div2 は、上部要素 div1 が標準フロー内の要素であることを検出するため、div2 の相対的な垂直位置は変更されず、上部は依然として div1 要素の下部と位置合わせされます。フローティングのままなので、左側がページの端に近いので左側が前になるので、div2は一番左になります。
div2、div3、および div4 がすべて 右 フローティングに設定されている場合、効果は次のようになります:
原理と左フローティング 基本的には同じですが、対応関係に注意が必要です。右に浮かせているので、右側がページの端に近いので、右側が前になるので、div2 は一番右になります。
div2 と div4 を左にフローティングすると、効果は次のようになります:
結論から言えば、div2 と div4 はフローティングで標準フローから外れているため、div3 は自動的に上に移動して div1 と標準フローを形成します。 div2 は、前の要素 div1 が標準フロー内の要素であることを検出するため、div2 の相対的な垂直位置は変更されず、div1 の下部に揃えられます。 div4 は、前の要素 div3 が標準フロー内の要素であることを検出します。そのため、div4 の上部は div3 の下部と位置合わせされます。これは常に当てはまります。これは、図からわかるように、div3 が上に移動した後、div4 も同様であるためです。 div4 は常に、その上部が前の要素 div3 (標準フローの要素) の下部と揃うようにします。
ここまでで、フロートの追加をマスターした読者の皆さんおめでとうございます。ただし、フロートのクリアも上記に基づいて非常に簡単に理解できます。
上記の検討により、フローティング前、つまり標準的なフローでは要素は垂直に配置されていますが、フローティング後は水平に配置されていることがわかります。
フロートをクリアすることは、水平配置を破壊することと理解できます。
float をクリアするためのキーワードは次のとおりです。
- 構文: clear: none | left | 値:
-
- none : デフォルト値。フローティング オブジェクトは両側で許可されます
- left: フローティング オブジェクトは左側で許可されません
- right: フローティング オブジェクトは右側で許可されません
- both: フローティングオブジェクトは許可されません
定義に間違いはありませんが、あまりにも曖昧すぎて途方に暮れてしまいます。
上記の基準によれば、ページ上に div1 と div2 の 2 つの要素しかない場合、両方とも左フローティングになります。
これ div1 と div2 の両方が float の場合、ルールに従って div2 は div1 に続きますが、div1 が float ではなく div2 が左側に残るのと同じように、div2 が div1 の下に配置されることを期待します。
現時点では、clear float (clear) が使用されます。純粋に公式の定義に従う場合、読者は次のように記述しようとするかもしれません。 div1 の右側は許可されていません。 div2 は浮動要素であるため、ルールに従って自動的に 1 行下に移動します。
実際、この理解は間違っており、効果はありません。結論を見てみましょう:
CSS のクリアフロート (クリア) に関しては、覚えておく必要があります。このルールはクリアを使用する要素自体にのみ影響し、他の要素には影響しません。
どう理解しますか?上の例で、 div2 を移動させたいのですが、 div1 要素の CSS スタイルで Clear float を使用し、 div1 の右側のフローティング要素をクリアする (clear:right;) ことで div2 を強制的に下に移動させようとしています。このクリア float は div1 で呼び出されるため、これは div1 にのみ影響し、div2 には影響しません。Xiaocai の結論によると、div2 を下に移動したい場合は、div2 の CSS スタイルで float を使用する必要があります。この例では、div2 の左側に浮動要素 div1 があるため、div2 の CSS スタイルで clear:left; を使用して浮動要素を div2 の左側に表示できないように指定している限り、要素、div2 は強制的に 1 行下に移動します。
では、ページ上に div1 と div2 の 2 つの要素しかなく、両方ともフローティングである場合はどうなるでしょうか?このとき、読者は次のようにシーンを自分で推測できるはずです:
div2 を div1 に下げたい場合は、どうすればよいでしょうか。
同様に Xiaocai の結論に基づくと、div2 を移動したい場合は、div2 の CSS スタイルで float を呼び出す必要があります。float は、それを呼び出す要素にのみ影響を与えることができるためです。
div2 の右側に浮動要素 div1 があることがわかります。div2 の CSS スタイルで clear:right; を使用して、浮動要素をその上に表示できないように指定できます。 div2 の右側にあるため、div2 は強制的に 1 行下に移動し、div1 の下に配置されます。
この時点で、読者は CSS+DIV 浮動配置の基本原則を習得しており、一般的なレイアウトを扱うには十分です。
実際、読者が注意深く理解している限り、レイアウトがどれほど複雑であっても、Xiaocai がまとめたルールによって解決することができます。
最後に書かれています:
CSS は非常にわかりにくく、特にブラウザーの互換性の問題については、この記事のレベルが限られていると厳粛に述べなければなりません。読者の皆様には不適切な部分があるかもしれませんが、ご容赦いただければ幸いです。本当は、こんなに長い記事は書きたくないのですが、読者の皆さんに理解していただくために、どうしても例を増やしたくなります。
読者の心理的プレッシャーを軽減するために、この記事には CSS または HTML コードが含まれていません。多くのチュートリアルには大量の CSS コードが含まれており、注意深く読むことはおろか、見るのも面倒だからです。
最後に、読者の皆様が幸せな読書と幸せな知識の習得をお祈りいたします。
著者:楊源 記事の出典:http://www.cnblogs.com/iyangyuan

公式アカウントのWebページはキャッシュを更新します。これはシンプルでシンプルで、ポットを飲むのに十分な複雑です。あなたは公式のアカウントの記事を更新するために一生懸命働きましたが、ユーザーはまだ古いバージョンを開くことができますか?この記事では、この背後にあるtwist余曲折と、この問題を優雅に解決する方法を見てみましょう。それを読んだ後、さまざまなキャッシュの問題に簡単に対処でき、ユーザーが常に新鮮なコンテンツを体験できるようになります。最初に基本について話しましょう。それを率直に言うと、アクセス速度を向上させるために、ブラウザまたはサーバーはいくつかの静的リソース(写真、CSS、JSなど)やページコンテンツを保存します。次回アクセスするときは、もう一度ダウンロードすることなく、キャッシュから直接検索できます。自然に高速です。しかし、このことは両刃の剣でもあります。新しいバージョンはオンラインです、

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

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

この記事では、CSSを使用したWebページへの効率的なPNG境界追加を示しています。 CSSはJavaScriptやライブラリと比較して優れたパフォーマンスを提供し、微妙または顕著な効果のために境界幅、スタイル、色を調整する方法を詳述していると主張しています

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

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

この記事では、html5< time>について説明します。セマンティックデート/時刻表現の要素。 人間の読み取り可能なテキストとともに、マシンの読みやすさ(ISO 8601形式)のDateTime属性の重要性を強調し、Accessibilitを増やします

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


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません
