ホームページ  >  記事  >  ウェブフロントエンド  >  CSSのfloat属性を一番わかりやすく詳しく解説(詳細な画像とテキスト)

CSSのfloat属性を一番わかりやすく詳しく解説(詳細な画像とテキスト)

WBOY
WBOY転載
2021-12-20 17:50:347639ブラウズ

この記事では、CSS の float 属性に関する関連知識の詳細な分析を提供します。float 属性は、要素がどの方向にフロートするかを定義します。さまざまな属性値で何が起こるかを見てみましょう. 結果は異なりますが、皆さんのお役に立てれば幸いです。

CSSのfloat属性を一番わかりやすく詳しく解説(詳細な画像とテキスト)

#CSS フローティング float プロパティの詳細な説明

私は昔から CSS に触れてきましたが、フローティングについてはいつも非常に混乱しています。私の理解力が足りなかったり、簡単なチュートリアルが見つからなかったりする可能性があります。

私は数日前にようやくフローティングの基本原理を理解しました。それを皆さんと共有するのが待ちきれません。

前に書いた言葉:

   由于CSS内容比较多,没有精力从头到尾讲一遍,只能有针对性的讲解。
   如果读者理解CSS盒子模型,但对于浮动不理解,那么这篇文章可以帮助你。
   小菜水平有限,本文仅仅是入门教程,不当之处请谅解!
   本文以p元素布局为例。

チュートリアルの開始:

まず、これは、ページ上の排他的な行を占有し、上から下に配置されるブロックレベルの要素であり、伝説的なフローです。以下に示すように:


CSSのfloat属性を一番わかりやすく詳しく解説(詳細な画像とテキスト) p1 の幅が非常に小さい場合でも、ページ上の 1 行で p1 と p2 を収容でき、p2 が p1 の後にランク付けされることはないことがわかります。 p 要素は独自の行を占有します。

上記の理論は標準ストリームの p を参照していることに注意してください。

Xiaocai は、レイアウトがどれほど複雑であっても、基本的な出発点は
「複数の p 要素を 1 行に表示する方法」であると考えています。 明らかに、標準ストリームでは需要を満たすことができないため、float を使用する必要があります。

フローティングとは、ある p 要素が標準フローから離れて標準フロー上に浮くことと理解できますが、標準フローと同じレベルにあるわけではありません。

たとえば、上図の p2 が浮いたとすると、標準ストリームから外れますが、p1、p3、p4 はまだ標準ストリーム内にあるため、p3 は自動的に上に移動します。そして p2 の位置を占め、ストリームを再組み立てします。図に示すように:


CSSのfloat属性を一番わかりやすく詳しく解説(詳細な画像とテキスト) 図からわかるように、p2 が float に設定されているため、標準フローに属さなくなり、p3 が自動的に上に移動して p2 と置き換わり、p1、 p3、p4が順に並び、新たなストリームとなる。また、フロートが標準の流れよりも上に浮いているため、p2 が p3 の一部をブロックし、p3 が「短く」見えるようになります。

ここで、p2 は、左フローティング (float:left;) を使用しています。これは、フローティングして左に配置することを意味し、右フローティング (float:right;) は、当然、右に配置することを意味します。ここでの左右とは、ページの左端と右端を指します。

p2 を右にフローティングすると、結果は次のようになります。


CSSのfloat属性を一番わかりやすく詳しく解説(詳細な画像とテキスト) このとき、p2 はページの右端に配置され、p3 をブロックしなくなります。読者は上記のことを明確に理解できると思いますが、p1、p3、および p4 で構成されるストリームについて説明しましょう。

これまでのところ、p 要素を 1 つだけ浮動させていますが、さらに浮動小数点要素を追加するにはどうすればよいでしょうか?

次に、p2 と p3 の両方に left float を追加します。結果は次のようになります。


CSSのfloat属性を一番わかりやすく詳しく解説(詳細な画像とテキスト) 同様に、p2 と p3 は float であるため、標準ストリームに属さなくなります。 p4 は自動的に上に移動して p1 と「新しい」標準フローを形成し、標準フローの上に浮くので、p2 は再び p4 をブロックします。

ああ、ここが本題です。p2 と p3 が同時に float に設定されている場合、p3 は p2 に続きます。読者が気づいたかどうかはわかりませんが、これまですべての例で p2 は float でした. ですが、p1 に従いません。したがって、重要な結論を導き出すことができます。

特定の p 要素 A が浮動小数点であり、A 要素の前の要素も浮動小数点数である場合、A 要素はその # の後に続きます。前の要素 ## の後に (これら 2 つの要素を 1 行に配置できない場合、A 要素は次の行に押し込まれます); A 要素の前の要素が標準ストリーム内の要素の場合の場合、A の相対的な垂直位置は変わりません。つまり、A の上部は常に前の要素の下部と位置合わせされます。 p の順序は、HTML コード内の p の順序によって決まります。

ページの端に近い端が表面、ページの端から遠い端が裏面です。



読者の理解を助けるために、さらにいくつかの例を示します。 CSSのfloat属性を一番わかりやすく詳しく解説(詳細な画像とテキスト)
p2、p3、p4 を

left

floating に設定すると、結果は次のようになります。
上記の結論に基づいて、次の説明に従います。 Xiaocai: まず、p4 が解析を開始すると、上の要素 p3 が浮動していることがわかり、p4 は p3 に従うことになります。p3 は、上の要素 p2 も浮動であることがわかり、p3 は p2 に従うことになります。そして、p2 は、上部要素 p1 は標準ストリーム要素であるため、p2 の相対的な垂直位置は変更されず、上部は p1 要素の下部と整列したままになります。 CSSのfloat属性を一番わかりやすく詳しく解説(詳細な画像とテキスト)
フローティングにしたままなので、左側がページの端に近いので、左側が前になるので、p2は一番左になります。

假如把p2、p3、p4都设置成浮动,效果如下:
CSSのfloat属性を一番わかりやすく詳しく解説(詳細な画像とテキスト)
道理和左浮动基本一样,只不过需要注意一下前后对应关系。由于是右浮动,因此右边靠近页面边缘,所以右边是前,因此p2在最右边。

假如我们把p2、p4左浮动,效果图如下:
CSSのfloat属性を一番わかりやすく詳しく解説(詳細な画像とテキスト)
依然是根据结论,p2、p4浮动,脱离了标准流,因此p3将会自动上移,与p1组成标准流。p2发现上一个元素p1是标准流中的元素,因此p2相对垂直位置不变,与p1底部对齐。p4发现上一个元素p3是标准流中的元素,因此p4的顶部和p3的底部对齐,并且总是成立的,因为从图中可以看出,p3上移后,p4也跟着上移,p4总是保证自己的顶部和上一个元素p3(标准流中的元素)的底部对齐。

至此,恭喜读者已经掌握了添加浮动,但还有清除浮动,有上边的基础清除浮动非常容易理解。

经过上边的学习,可以看出:元素浮动之前,也就是在标准流中,是竖向排列的,而浮动之后可以理解为横向排列。

清除浮动可以理解为打破横向排列。

   清除浮动的关键字是clear,官方定义如下:



   语法:

   clear : none | left | right | both

   取值:

   none  :  默认值。允许两边都可以有浮动对象

   left   :  不允许左边有浮动对象

   right  :  不允许右边有浮动对象

   both  :  不允许有浮动对象

定义非常容易理解,但是读者实际使用时可能会发现不是这么回事。
定义没有错,只不过它描述的太模糊,让我们不知所措。

根据上边的基础,假如页面中只有两个元素p1、p2,它们都是左浮动,场景如下:
CSSのfloat属性を一番わかりやすく詳しく解説(詳細な画像とテキスト)
此时p1、p2都浮动,根据规则,p2会跟随在p1后边,但我们仍然希望p2能排列在p1下边,就像p1没有浮动,p2左浮动那样。

这时候就要用到清除浮动(clear),如果单纯根据官方定义,读者可能会尝试这样写:在p1的CSS样式中添加clear:right;,理解为不允许p1的右边有浮动元素,由于p2是浮动元素,因此会自动下移一行来满足规则。

其实这种理解是不正确的,这样做没有任何效果。看小菜定论:
对于CSS的清除浮动(clear),一定要牢记:这个规则只能影响使用清除的元素本身,不能影响其他元素。

怎么理解呢?就拿上边的例子来说,我们是想让p2移动,但我们却是在p1元素的CSS样式中使用了清除浮动,试图通过清除p1右边的浮动元素(clear:right;)来强迫p2下移,这是不可行的,因为这个清除浮动是在p1中调用的,它只能影响p1,不能影响p2。

根据小菜定论,要想让p2下移,就必须在p2的CSS样式中使用浮动。本例中p2的左边有浮动元素p1,因此只要在p2的CSS样式中使用clear:left;来指定p2元素左边不允许出现浮动元素,这样p2就被迫下移一行。
CSSのfloat属性を一番わかりやすく詳しく解説(詳細な画像とテキスト)
那么假如页面中只有两个元素p1、p2,它们都是右浮动呢?读者此时应该已经能自己推测场景,如下:
CSSのfloat属性を一番わかりやすく詳しく解説(詳細な画像とテキスト)
此时如果要让p2下移到p1下边,要如何做呢?

同样根据小菜定论,我们希望移动的是p2,就必须在p2的CSS样式中调用浮动,因为浮动只能影响调用它的元素。

可以看出p2的右边有一个浮动元素p1,那么我们可以在p2的CSS样式中使用clear:right;来指定p2的右边不允许出现浮动元素,这样p2就被迫下移一行,排到p1下边。
CSSのfloat属性を一番わかりやすく詳しく解説(詳細な画像とテキスト)
至此,读者已经掌握了CSS+p浮动定位基本原理,足以应付常见的布局。

其实,万变不离其宗,只要读者用心体会,再复杂的布局都可以通过总结的规律搞定。

(学习视频分享:css视频教程

以上がCSSのfloat属性を一番わかりやすく詳しく解説(詳細な画像とテキスト)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。