Floating
1. float とは
要素の<a href="http://www.php.cn/wiki/919.html" target="_blank">float<p></p></a>
の場合属性 <a href="http://www.php.cn/wiki/919.html" target="_blank">float</a>
属性不为 none
时就产生了浮动。<p class="float">float</p>
.float { float: left; width: 100px; height: 100px; background-color: #ddd; }
2. 浮动的影响
浮动会使元素脱离文档流,具体表现为:
-
父元素高度塌陷,即不会包含浮动元素。
比如上面的代码就会表现为父元素高度塌陷
-
文本环绕。
文本环绕效果
可以注意到这里.normal
元素的宽度覆盖了.float
元素,但是.float
元素下是没有文本的,也就是说文本被“挤”出来了,这是因为它虽然会脱离文档流,但是不会脱离文本流。这个效果也是float
属性的本意。其代码如下:<p class="float">float</p>
正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素
body { background-color: #ccc; } .float { float: left; width: 100px; height: 100px; background-color: #ddd; } .normal { background-color: #fff; }
浮动元素的外边距不会合并。
关于外边距合并的相关内容可以戳这里。
元素一旦浮动便会变成行内块元素,即 <a href="http://www.php.cn/wiki/927.html" target="_blank">display</a>: inline-block
。
3. 浮动的应用
上面提到的文本环绕。
-
写一个三列布局,左右固定宽度,中间自适应。
<body> <p class="left float">left</p> <p class="right float">right</p> <p class="mid">自适应宽度元素自适应宽度元素自适应宽度元素自适应宽度元素自适应宽度元素自适应宽度元素自适应宽度元素自适应宽度元素自适应宽度元素</p> </body>
body { background-color: #ccc; } .float { float: left; width: 100px; height: 100px; background-color: #ddd; } .left { float: left; } .right { float: right; } .mid { height: 100px; background-color: #fff; margin: 200px; /*故意加上了上下 margin 值*/ }
这里我故意加上了上了
margin
值,可以看到效果:三列布局
body
也随.mid
的margin
往下掉了,这点可以用前面介绍的外边距合并来解释。ps:我第一次自己写这个三列布局的时候,html 是这样写的
<body> <p class="left float">left</p> <p class="mid">自适应宽度元素自适应宽度元素自适应宽度元素自适应宽度元素自适应宽度元素自适应宽度元素自适应宽度元素自适应宽度元素自适应宽度元素</p> <p class="right float">right</p> </body>
如上把中间自适应的元素写在中间,其实这样比较符合逻辑,但是如果这样写是行不通的,右边的元素会掉下来,因为
.mid
元素是块级元素,会占满整行,.left
不会掉下来是因为它本来就是脱离文文档流的浮动元素。
清除浮动
在子元素上清除
这里我只写不会产生无意义标签的方法。
浮动元素后面若有兄弟元素,则可以在给它的兄弟元素加上
clear
属性。
如文本环绕那一部分代码,给.normal
加上clear:left
或者clear:both
。clear
的具体用法这里不做过多赘述。-
给要清除浮动的元素加上伪类或者伪元素。
.float::after { content: ''; display: block; visiability: hidden; height: 0; clear: both; }
关于 ::after 的使用可以看 MDN 的文档。
在父元素上清除,即BFC
BFC(Block Formatting Context),即块级格式上下文,它的官方解释是:
浮动、绝对定位元素(
position
为absolute
或fixed
)、行内块元素display:inline-block
、表格单元格display:table-cell
、表格标题display:table-caption
以及overflow
属性值不为visible
的元素(除了该值被传播到视点viewport
的情况)将创建一个新的块级格式化上下文。
总结来说它要满足下列条件之一:
float
不为none
position
不为static
或relative
display
为table-cell
、table-caption
、inline-block
、flex
、inline-flex
-
rrreeerrreeeoverflow
不为visible
がnone
でない場合、フローティングが発生します。 2. フローティングの影響
-
フローティングにより要素がドキュメント フローから外れます。具体的なパフォーマンスは次のとおりです。
- 親要素は高度に折りたたまれています。つまり、フローティング要素は含まれません。
たとえば、上記のコードは -
テキストの折り返し効果
ここでは、.normal
要素の幅が.float をカバーしていることがわかります。 code> 要素は存在しますが、 <code>.float
要素の下にはテキストがありません。これは、テキストが「絞り出された」ことを意味します。これは、テキストがドキュメント フローから切り離されても、中断されないためです。テキストの流れから離れてください。この効果は、float
属性の本来の目的でもあります。コードは次のとおりです。 rrreeerrreee
- 親要素は高度に折りたたまれています。つまり、フローティング要素は含まれません。
- フローティング要素のマージン 🎜合併しない。
マージンの結合に関する関連コンテンツについては、ここをクリックしてください。 🎜🎜- 🎜 要素がフローティングされると、インライン ブロック要素、つまり
<a href="http://www.php.cn/wiki/927.html" target=" になります。 _blank">表示🎜 : インラインブロック</a>
。 🎜🎜🎜🎜3. フローティングアプリケーション🎜- 🎜上記のテキストの折り返し。 🎜🎜
- 🎜 左右に固定幅、中央に適応型の 3 列レイアウトを作成します。 🎜rrreeerrreee🎜ここでは、意図的に
margin
値を追加しました。その効果がわかります: 🎜
🎜3 列レイアウト🎜🎜 body も
.mid
のmargin
と一致します。これは、前に紹介したマージンのマージによって説明できます。 🎜🎜追記: この 3 列レイアウトを最初に書いたとき、HTML は次のように書かれていました🎜rrreee🎜 上記のように、中央のアダプティブ要素は中央に書かれています。実際には、これはより論理的ですが、次の場合には機能しません。このように記述すると、.mid
要素はブロックレベル要素であり、.left
要素全体が落ちないため、右側の要素は落ちます。元々はドキュメント フローのフローティング要素であるため、ダウンします。 🎜🎜
- 🎜 フローティング要素の背後に兄弟要素がある場合は、その兄弟要素に
clear
属性を追加できます。
テキストがコードのその部分を囲む場合は、clear:left
またはclear:both
を.normal
に追加します。clear
の具体的な使用法については、ここでは詳しく説明しません。 🎜🎜 - 🎜フローティングを解除する要素に疑似クラスまたは疑似要素を追加します。 🎜rrreee🎜::after の使用方法については、MDN のドキュメントを参照してください。 🎜🎜
🎜 浮動、絶対配置要素。 (
🎜要約すると、次の条件のいずれかを満たしている必要があります: 🎜位置
はabsolute
またはfixed
)、インライン ブロック要素display:inline-block
、テーブル セル属性値が <code>visible
ではない、display:table -cell、table-captiondisplay:table-caption
、およびoverflow
要素 (ただし、値がビューポートviewport
に伝播されると、新しいブロックレベルの書式設定コンテキストが作成されます。 🎜- 🎜
float
がnone🎜🎜<li>🎜<code>position
はstatic
またはrelative
ではありません🎜🎜 - 🎜
display
table-cell
、table-caption
、inline-block
、flex
、inline-flex code>🎜🎜<li>🎜<code>overflow
はvisible
ではありません🎜🎜🎜🎜 上記の属性のいずれかを親要素に追加して条件を満たす限り、条件、つまり親要素に追加すると、BFC は子要素の float をクリアできます。 🎜🎜【関連おすすめ】🎜🎜1.🎜無料のCSSオンラインビデオチュートリアル🎜🎜🎜2.🎜CSSオンラインマニュアル🎜🎜🎜3.🎜php.cn Dugu Jiijian (2) - CSSビデオチュートリアル🎜🎜
- 🎜 要素がフローティングされると、インライン ブロック要素、つまり
以上がフロートの定義とフロートのクリアランス (BFC)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

今週のラウンドアップ:Firefoxは錠前屋のような力を獲得し、Samsung&#039; s Galaxy StoreがプログレッシブWebアプリをサポートし始め、CSS SubgridはFirefoxで出荷しています

今週のラウンドアップ:Internet ExplorerがEdgeに進み、Google Search Consoleが新しい速度レポートを宣伝し、FirefoxがFacebookの通知を提供します

おそらく、CSS変数に少なくとも少し精通しているでしょう。そうでない場合は、ここに2秒の概要があります:それらは本当にカスタムプロパティと呼ばれます、あなたは設定します

建物のウェブサイトはプログラミングです。 HTMLとCSSの作成はプログラミングです。私はプログラマーです。ここでCSS-Tricksを読んでいる場合、あなたは&#039;

ここに&#039;私が前もって知るのが好きなこと:これは難しい問題です。あなたがここに上陸した場合、あなたはあなたが伝えることができるツールを指し示すことを望んでいるので、あなたが&#039;

Picture-in-Pictureは、2016年にMacos SierraをリリースしたSafariブラウザでWebに初めて登場しました。ユーザーがポップできるようになりました。

Gatsbyは、画像の処理と処理の素晴らしい仕事をしています。たとえば、手動で画像の最適化で時間を節約するのに役立ちます

私は今日、私の頭の中で完全に間違っていたことをパーセンテージベース(%)のパディングについて学びました!パディングの割合はに基づいているといつも思っていました


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

ドリームウィーバー CS6
ビジュアル Web 開発ツール

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

WebStorm Mac版
便利なJavaScript開発ツール
