css float属性とpositionの違いの詳細な分析:absolute_Basicチュートリアル
1.float 属性は、要素が浮動する方向を定義します。歴史的に、このプロパティは常に画像に適用され、テキストが画像の周りを回り込むようにしていましたが、CSS では任意の要素をフローティングにすることができます。フロート要素は、要素のタイプに関係なく、ブロック レベルのボックスを作成します。 div は、それ自体で 1 行を占める典型的なブロックレベル要素です。
まず、最も基本的なブロックレベルの要素がどのように配置されているかを見てみましょう。 html コードでは、次のスタイルはこれに基づいています。
フレーム 1
フレーム 2
n
フレーム 3
CSS コード:
.boxBg{
margin: 0 自動;
幅:500px;
高さ:200px;
ボーダー:2px ソリッド #ccc
}
.box1{
幅:100px;
高さ:50px;
背景色:赤
}
.box2{
幅:100px;
高さ:50px;
背景色:青
}
.box3{
幅:100px;
高さ:50px;
背景色:緑
}
実行結果:
div はブロックレベルの要素であるため、ボックスは垂直に配置されます。実際の運用では、フレームを水平に配置する必要があることがよくあります。これを行うには 2 つの方法があります。 1 つ目は、display:inlin-block;
.boxBg{
margin: 0 auto;
width:500px;
height:200px;
border:2px Solid #ccc
}
.box1{
幅:100px;
高さ:50px;
背景色:赤;
表示:インラインブロック
}
.box2 {
幅:100px;
高さ:50px;
背景色:青;
表示:インラインブロック
}
.box3{
幅:100px;高さ:50px;
背景色:緑;
表示:インラインブロック
}
実行結果:
真ん中の隙間ですが、本質的な原因は要素間の空白にありますので、親要素のfone-sizeのサイズを設定することで空白の大きさを調整することができます。
.boxBg{
margin: 0 自動;
幅:500px;
高さ:200px;
ボーダー:2px 実線 #ccc;
font-size:34px;
}
font-size:34px に設定すると、隙間がさらに広がります。
実行結果:
同様に、ギャップを削除したい場合は、font-size:0; を変更する必要があります。
.boxBg{
margin: 0 自動;
幅:500px;
高さ:200px;
ボーダー:2px 実線 #ccc;
font-size:0
}
実行結果:
このようにして、希望通りのレイアウトとなり、ボックス内の文字が消えますが、これも文字の大きさが隙間に影響を与えることがわかります。子要素でリセットするだけです。もちろん、今日の焦点はそこではありません。同じ効果 float:left; も簡単に実現できます。
実行結果:
要素にフロートを追加すると、フローティング要素は親要素の境界線または別のフローティング要素の境界線に遭遇した直後に表示されます。たとえば、次の例では、フローティング要素の合計幅が親要素よりも大きい場合、行は折り返されます。行が折り返されると、前のフロートが検出され、その後に表示されます。
実行結果:
inline-block を使用すると結果はどうなりますか?
実行結果:
このとき、ボックス 3 はボックス 1 に続くのではなく、新しい行で始まります (1 と 2 の間のギャップについてはここでは説明しません)。これも inline-block と float を使用した判断です。モジュール幅がfloat 組版を使用すると、予想とは異なる結果が生じる可能性があるため、幅と高さが変更されない場合は float を使用することをお勧めします。一貫性がない場合は、特定のレイアウトを確認し、適切な属性を使用する必要があります。
以下にコードを掲載します。変更部分のみを掲載し、残りは変更せず、構造も変更しません。
box3 の float: left を削除すると、結果はどうなりますか?理解によれば、フローティング要素はスペースを占有しません。つまり、フレーム 3 はフレーム 1 を無視し、フレーム 2 は親要素の境界線のすぐ隣に表示されます。つまり、フレーム 1 がフレーム 3 を覆います。結果?
.box3{
width: 100px;高さ:50px;
背景色:green;
}
実行結果:
ボックス 3 のテキストがボックス 1 に隠れずに下に表示されるのはなぜですか?次に、コードと画像を見てください。
.box3{
高さ: 50px;background-color:green;
}
実行結果:
違いがわかりますか?はい。 box3 は幅を定義しません。幅は削除されます。幅を定義しないと、デフォルトの幅は親要素の幅になります。つまり、この時点では、幅: 500px、浮動要素が非浮動要素を覆います。 、ボックス 3 の前の幅 200px はフローティング要素によって占有されています。カバーされているのに、テキストがカバーされず、テキストがフローティング要素の 200px 後ろに押し込まれているのはなぜですか?
浮動要素はブロックのスペースを占有しないため、ボックス 3 は親コンテナの幅 500 ピクセルの 100% になりますが、浮動要素は他のスペース (ライン ボックス スペース) を占有します。テキストが占めるスペース。
これは、テキストが画像を浮かせた後に自動的に画像の周りを回り込む理由でもあります。フローティング要素はブロックレベルのスペースを占有しませんが、ブロックレベル要素内のテキストおよびインライン要素に影響を与えます。
この場合、3 つのボックスの幅を同じにしたい場合は、3 つのボックスの幅を 300px; に変更するだけで済みます。
.box3{
width: 300px; 高さ:50px;
背景色:緑;
}
実行結果:
フローティングの基本的な説明が終わったので、問題点について話しましょう。フローティングは使いやすいですが、実際には多くの問題も引き起こします。例:
実行結果:
通常の状況では、非常に一般的な問題です。灰色の背景はフレームと同じ高さである必要がありますが、現実は常に満足のいくものではありません :)
この状況の原因が浮遊であることは皆さんご存知のとおりです。はい、浮遊です。浮遊要素は通常の流れから離脱するとよく言われているので、通常の要素を浮遊要素のように扱うことができます存在しないため、ここにはそのようなものはありません。背景は開かれていますが、注意深く読んだ学生は、フローティング要素はブロック ボックスには影響しませんが、ライン ボックス、つまりテキストまたはインラインには影響することを上で述べたことを覚えているでしょう。要素は、ブロックレベル要素であってもインライン要素であっても、通常のフローに属します。フローティング要素が通常のフローから外れると、なぜラインボックスに影響を与えるのでしょうか?実際のところ、これらの概念的な事柄にこだわる必要はないと思います。私の理解によれば、フローティング要素はブロックレベルの要素と同じ水平スペースではなく、テキストのインライン要素と同じスペースにあるため、ここの境界線は背景の上にあることと同等であるため、背景要素。通常、フロートのクリアと呼ばれるもの。これは、フローティング要素のフロート属性を削除することを意味するのではなく、周囲にフローティング要素が存在しないように周囲のフローティング要素をクリアすることを意味します。したがって、ボックス 3 を希望する場合は、 2 行目に移動すると、ボックス 2 では clear:right; を使用できません。ボックス 3 では、clear:left;
を使用する必要があります。.box3{
float:左; 幅:100px;
高さ:50px;
背景色:緑;
クリア:左
}
実行結果:
ok! これで理解できたので、背景とフレームを同じ高さにする方法について話しましょう。最初の方法: 最も直接的な方法は、背景の高さをフレームと等しくなるように直接設定することです。もちろんこれは問題ではありません。クリアについて話しましょう。まず、例を見てみましょう。
フレーム 1
フレーム 2
n
ボックス 3
実行結果:
上記の結果が得られます。同じ高さの空の要素が直接追加されていることがわかります。この要素はフローティングではないため、背景と同じであるため、背景が引き伸ばされます。実際、clear float を使用する原理はこれと同じで、背景もオープンにしてみます。上記では、clear の幅と高さを削除し、clear 属性を追加しています。
.clear{
clear:左; }
実行結果:
これははっきりと見えないかもしれません。透明なボックスにいくつかの単語を追加してみてください。
実行結果:
clear は clear:left を使用するためです。要約すると、次のようになります。クリアの左側には浮動要素がないため、新しい行に表示する必要があります。このようにして、写真の結果が実際には 1 つの要素によって支えられた背景であることがわかります。もちろん、それを実現する他の方法もあります。ここで重要なことは、フローティングを明確に説明することです:)

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

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

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

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

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

ホットトピック











float の最大値: 1. C 言語の float の最大値は 3.40282347e+38 IEEE 754 規格によれば、float 型の最大指数は 127、仮数部の桁数は 23 です。このように、最大浮動小数点数は 3.40282347 e+38 になります。 2. Java 言語では、最大浮動小数点数は 3.4028235E+38 です。 3. Python 言語では、最大浮動小数点数は 1.7976931348623157e+308 です。

一般的なデータベースの float 型の長さは次のとおりです: 1. MySQL の float 型の長さは 4 バイトまたは 8 バイトです; 2. Oracle の float 型の長さは 4 バイトまたは 8 バイトです; 3. SQL Server の float 型の長さ8 バイトに固定されています; 4. PostgreSQL の float 型の長さは 4 バイトまたは 8 バイトなどです。

float の精度は小数点以下 6 ~ 9 桁に達します。 IEEE754 規格によれば、float 型で表現できる有効桁数は約 6 ~ 9 桁です。ただし、これは理論上の最大精度であり、実際の使用では浮動小数点数の丸め誤差により、float 型の精度が低下する場合があります。コンピュータで浮動小数点数演算を実行すると、浮動小数点数の精度制限により精度の低下が発生する場合があります。浮動小数点数の精度を向上させるために、double や long double などのより精度の高いデータ型を使用できます。

C 言語の Float は、単精度浮動小数点数を表すために使用されるデータ型です。浮動小数点数は科学的表記法で表現された実数であり、非常に大きな値または非常に小さな値を表すことができます。 float 型の変数は、小数点以下有効数字 6 桁の値を格納できます。C 言語では、float 型を使用して浮動小数点数の演算と格納を行うことができます。その変数は、小数、分数、科学的表記法の表現に使用できます。実数は整数型とは異なり、浮動小数点数は小数点以下の数値を表すことができ、小数に対して四則演算を実行できます。

Python、JavaScript、Java、C#、Ruby、PHP を介して float に変換できます。詳細な紹介: 1. Python、float_number = float(string_number) と入力します; 2. JavaScript、float_number = parseFloat(string_number); と入力します 3. Java など

float 属性値には、left、right、none、inherit、clearinline-start、inline-end が含まれます。詳細な紹介: 1. 左、要素は左側にフロートします。つまり、要素はコンテナの左側にできるだけ近くに配置され、他の要素は右側でそれを囲みます。2. 右、要素右にフロートします。つまり、要素は可能な限りコンテナの近くに配置されます。右側では、他の要素が左側でそれを囲みます。3. デフォルト値の none では、要素はフローティングにならず、配置されます。通常の書類の流れなどに準じて

float32 バイトには、符号ビット、指数ビット、仮数ビットが含まれており、32 ビット浮動小数点数を表すために使用されます。詳細な紹介: 1. 符号ビット (1 ビット)、数値の符号を表すために使用され、0 は正の数値を表し、1 は負の数値を表します; 2. 指数ビット (8 ビット)、数値の指数部分を表すために使用されます。浮動小数点数、指数ビットを介して浮動小数点数のサイズ範囲を調整できます; 3. 仮数ビット (23 ビット) は浮動小数点数の仮数部分を表すために使用され、仮数ビットは格納されます。浮動小数点数の小数部分。符号ビットは浮動小数点数の符号を決定し、指数ビットと仮数ビットは共同して浮動小数点数のサイズと精度を決定します。

float と double の主な違いは、精度、ストレージと計算速度、範囲、およびプログラミング言語での使用にあります。詳細な紹介: 1. 精度が異なります。Float は 4 バイト (32 ビット) を占有する単精度浮動小数点数ですが、Double は 8 バイト (64 ビット) を占有する倍精度浮動小数点数です。ストレージと計算速度が異なります。double はより多くのスペースを必要とし、値を保存するためにより多くのストレージスペースが必要です。高いパフォーマンスと速度が必要なアプリケーションでは、float 型を使用する方が効率的である可能性があります。3. 範囲が異なるなど。
