目次
今日のレッスンの概要
CSS Floating Principle の紹介
CSS float プロパティ
clear 属性
overflow プロパティ
授業演習
まとめ
ホームページ ウェブフロントエンド htmlチュートリアル 2016.3.14CSSフローティング5日目_html/css_WEB-ITnose

2016.3.14CSSフローティング5日目_html/css_WEB-ITnose

Jun 24, 2016 am 11:24 AM

今日のレッスンの概要

フローティング ボックスは、その外縁が収容ボックスまたは別のフローティング ボックスの境界線に触れるまで、左右に移動できます。

フローティング ボックスはドキュメントの通常のフローにないため、ドキュメントの通常のフロー内のブロック ボックスは、フローティング ボックスが存在しないかのように動作します。

CSS Floating Principle の紹介

下の図を見てください。ボックス 1 が右にフローティングされている場合、ボックス 1 はドキュメント フローから外れ、その右端が含まれているボックスの右端に接触するまで右に移動します。

CSS フローティングの例 - 要素が右にフローティングされています

下の図をもう一度見てください。ボックス 1 が左にフローティングすると、ドキュメント フローから切り離され、左端が左に触れるまで左に移動します。入っている箱の端。

これはドキュメント フローに含まれないため、スペースをとらず、実際にボックス 2 を覆い、ボックス 2 が表示されなくなります。

3 つのボックスすべてが左に移動された場合、ボックス 1 は、それが含まれているボックスに当たるまで左に浮き、他の 2 つのボックスは、前の浮いているボックスに当たるまで左に浮きます。

CSS フローティングの例 - 左側にフローティングする要素

下の図に示すように、含まれているボックスが狭すぎて水平に配置された 3 つのフローティング要素を収容できない場合は、十分な数が確保されるまで他のフローティング ブロックが下に移動します。空間 。

フロート要素の高さが異なる場合、下に移動するときに他のフロート要素によって「スタック」される可能性があります:

CSS float プロパティ

CSS では、float プロパティを通じて要素をフロートさせます。

float 属性は、要素が浮動する方向を定義します。

以前は、テキストが画像を囲むようにこのプロパティが常に画像に適用されていましたが、CSS では任意の要素をフロート表示できます。

フローティング要素は、要素の種類に関係なく、ブロックレベルのボックスを生成します。

非置換要素を浮動させる場合は、明示的な幅を指定します。それ以外の場合は、可能な限り狭くなります。

注: 行上に浮動要素用のスペースがほとんどない場合、要素は次の行にジャンプし、特定の行に十分なスペースができるまでこのプロセスが続きます。

値 説明
left 要素は左に移動します。
right 要素は右にフローティングします。
なし デフォルト値。要素はフロート表示されず、テキスト内のどこにでも表示されます。
inherit float 属性の値を親要素から継承することを指定します。


ライン ボックスとクリーンアップ

フローティング ボックスのためのスペースを確保するために、フローティング ボックスの隣のライン ボックスが短くなり、ライン ボックスがフローティング ボックスを囲みます。

そのため、フローティング ボックスを作成すると、テキストを画像の周りに折り返すことができます:



ライン ボックスがフローティング ボックスの周りに折り返される

ライン ボックスがフローティング ボックスの周りに折り返されないようにするには、clear 属性を適用する必要があります。箱に。

clear 属性の値は、左、右、両方、またはなしのいずれかで、ボックスのどの辺がフローティング ボックスの隣にあってはいけないかを示します。

この効果を実現するには、要素の上端がフローティング ボックスの下に垂直に落ちるように、クリアされた要素の上マージンに十分なスペースを追加します。

clear 属性

Clear 属性は、要素のどちら側を指定します。他の浮動要素はサイドに許可されません。

clear 属性は、要素のどの側にフローティング要素を含めることが許可されないかを定義します。

CSS1 と CSS2 では、これはクリア要素 (つまり、クリア属性が設定された要素) に上部マージンを自動的に追加することによって実現されます。

CSS2.1では要素の上マージンの上にクリアスペースが追加されますが、マージン自体は変わりません。

どちらの変更が行われても、最終結果は同じです。 left または right Clear として宣言されている場合、

は、その側のフローティング要素の下マージンのすぐ下に要素の上境界線を作成します。

値の説明 left 左側では浮動要素は許可されません。 right 右側ではフローティング要素は許可されません。 両方 フローティング要素は左側と右側では許可されません。 なしデフォルト値。フロート要素を両側に表示できるようにします。 inherit Clear 属性の値を親要素から継承することを指定します。



clear プロパティの例 - ライン ボックスにクリアを適用する

これは、フロート要素のためのスペースを周囲の要素に残すことができる便利なツールです。

フロートとクリーンアップをさらに詳しく見てみましょう。

画像をテキスト ブロックの左側にフローティングさせ、その画像とテキストを背景色と境界線を持つ別の要素に含めたいとします。

次のコードを書くかもしれません:

.news {  background-color: gray;  border: solid 1px black;  }.news img {  float: left;  }.news p {  float: right;  }<div class="news">    <img src="news-pic.jpg" />    <p>some text</p></div>
ログイン後にコピー

この場合、問題が発生します。フローティング要素はドキュメント フローの外にあるため、画像とテキストを囲む div はスペースを占有しません。

周囲の要素が浮動要素を視覚的に囲むようにするにはどうすればよいですか? Clear はこの要素のどこかに適用する必要があります:

clear 属性インスタンス - clean を空の要素に適用します

残念なことに、clean を適用できる既存の要素がないため、新しい問題が発生します。空の要素を追加して削除します。
.news {
background-color: grey;
border: plain 1px black;
}

.news img {  float: left;  }.news p {  float: right;  }.clear {  clear: both;  }<div class="news">    <img src="news-pic.jpg" />    <p>some text</p>    <div class="clear"></div></div>
ログイン後にコピー

これで目的の効果を実現できますが、追加のコードを追加する必要があります。

クリアできる要素も多々ありますが、レイアウト上意味のないタグを追加しなければならない場合もあります。

しかし、コンテナ div をフローティングにする別の方法もあります。

.news {  background-color: gray;  border: solid 1px black;  float: left;  }.news img {  float: left;  }.news p {  float: right;  }<div class="news">    <img src="news-pic.jpg" />    <p>some text</p></div>
ログイン後にコピー

これで、必要な効果が得られます。

残念ながら、次の要素はこの浮動要素の影響を受けます。

この問題を解決するために、レイアウト内のすべてをフローティングし、適切な意味のある要素 (多くの場合、サイトのフッター) を使用してこれらのフロートをクリーンアップすることを選択する人もいます。

これは、不要なマーキングを削減または削除するのに役立ちます。

実際、W3School サイトのすべてのページでこのテクノロジーが使用されています。使用している CSS ファイルを開くと、

フッター div がクリーンアップされ、フッターの上にある 3 つの div がすべてフロートされていることがわかります。左。

overflow プロパティ

overflow プロパティは、コンテンツが要素のボックスからオーバーフローしたときに何が起こるかを指定します。

この属性は、要素のコンテンツ領域をオーバーフローするコンテンツがどのように処理されるかを定義します。

値がスクロールの場合、ユーザー エージェントは必要かどうかに関係なくスクロール メカニズムを提供します。

そのため、すべてのコンテンツが要素ボックス内に収まる場合でも、スクロールバーが表示される可能性があります。

値の説明
visible デフォルト値。コンテンツはトリミングされず、要素ボックスの外側にレンダリングされます。
hidden コンテンツはトリミングされ、残りのコンテンツは非表示になります。
スクロール コンテンツはトリミングされますが、ブラウザーには残りのコンテンツを表示するためのスクロール バーが表示されます。
auto コンテンツがトリミングされると、ブラウザーには残りのコンテンツを表示するためのスクロール バーが表示されます。
inherit オーバーフロー属性の値を親要素から継承することを指定します。

例:

<!DOCTYPE html><html>    <head>        <meta charset="utf-8">        <title>浮动</title>        <style media="screen"> .content { overflow: hidden; } .div1, .div2, .div3 { width: 200px; height: 200px; background-color: cyan; /*向右浮动*/ float: right; } p { background-color: green; /*清除浮动*/ /*clear: both;*/ } </style>    </head>    <body>        <div class="content">            <div class="div1">div1</div>            <div class="div2">div2</div>            <div class="div3">div3</div>        </div>        <p>p1</p>    </body></html>
ログイン後にコピー

クリアフロート:

クリアされていないフロート:

授業演習

ページは下の図のようにレイアウトされており、制限時間は 20 分です:

Exerシスの答え: (直接フォローすることはお勧めしません。ノック、まず自分で試してみることをお勧めします)

<!DOCTYPE html><html>    <head>        <meta charset="utf-8">        <title>练习</title>        <style media="screen"> div { font-size: 50px; text-align: center; line-height: 100px; } .top { background-color: cyan; } .top div { float: left; width: 100px; height: 100px; background-color: green; } .middle { clear: both; } .middle .left { float: left; } .middle .right { float: left; } .div6 { width: 300px; height: 100px; background-color: yellow; } .left_middle { width: 300px; /*height: 100px;*/ } .div8 { float: left; width: 150px; height: 150px; background-color: gray; } .div9 { background-color: black; color: white; width: 150px; height: 150px; float: right; } .div11 { clear: both; background-color: red; width: 300px; height: 100px; } .div7 { width: 200px; height: 200px; background-color: rgb(89, 210, 218); } .div10 { width: 200px; height: 150px; background: cyan; } .div8, .div9, .div10 { line-height: 150px; } .div12 { clear: both; width: 500px; height: 100px; background-color: blue; } </style>    </head>    <body>            <div class="top">                <div class="div1">1</div>                <div class="div2">2</div>                <div class="div3">3</div>                <div class="div4">4</div>                <div class="div5">5</div>            </div>            <div class="middle">                <div class="left">                    <div class="div6">6</div>                    <div class="left_middle">                        <div class="div8">8</div>                        <div class="div9">9</div>                    </div>                    <div class="div11">11</div>                </div>                <div class="right">                    <div class="div7">7</div>                    <div class="div10">10</div>                </div>            </div>            <div class="div12">12</div>    </body></html>
ログイン後にコピー

まとめ

Floating element:

1.浮动元素不占父级宽高2.浮动元素都在一行内显示3.浮动元素都可以设置宽高和margin/padding4.浮动元素默认内容撑开宽高5.可以去除浏览器的默认缝隙6.浮动元素标签会发生层叠,但是内容不会
ログイン後にコピー

Clear float:

1.clear:both;清除的前一个浮动元素造成的影响,弊端会增加一个元素2.overflow:hidden; 加给浮动元素的父级ps:如果要兼容ie6/7的话要加zoom:1haslayout
ログイン後にコピー
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

HTML:構造、CSS:スタイル、JavaScript:動作 HTML:構造、CSS:スタイル、JavaScript:動作 Apr 18, 2025 am 12:09 AM

Web開発におけるHTML、CSS、およびJavaScriptの役割は次のとおりです。1。HTMLは、Webページ構造を定義し、2。CSSはWebページスタイルを制御し、3。JavaScriptは動的な動作を追加します。一緒に、彼らは最新のウェブサイトのフレームワーク、美学、および相互作用を構築します。

HTML、CSS、およびJavaScriptの未来:Web開発動向 HTML、CSS、およびJavaScriptの未来:Web開発動向 Apr 19, 2025 am 12:02 AM

HTMLの将来の傾向はセマンティクスとWebコンポーネントであり、CSSの将来の傾向はCSS-in-JSとCSShoudiniであり、JavaScriptの将来の傾向はWebAssemblyとServerLessです。 1。HTMLセマンティクスはアクセシビリティとSEO効果を改善し、Webコンポーネントは開発効率を向上させますが、ブラウザの互換性に注意を払う必要があります。 2。CSS-in-JSは、スタイル管理の柔軟性を高めますが、ファイルサイズを増やす可能性があります。 CSShoudiniは、CSSレンダリングの直接操作を可能にします。 3. Webassemblyブラウザーアプリケーションのパフォーマンスを最適化しますが、急な学習曲線があり、サーバーレスは開発を簡素化しますが、コールドスタートの問題の最適化が必要です。

HTMLの未来:ウェブデザインの進化とトレンド HTMLの未来:ウェブデザインの進化とトレンド Apr 17, 2025 am 12:12 AM

HTMLの将来は、無限の可能性に満ちています。 1)新機能と標準には、より多くのセマンティックタグとWebComponentsの人気が含まれます。 2)Webデザインのトレンドは、レスポンシブでアクセス可能なデザインに向けて発展し続けます。 3)パフォーマンスの最適化により、応答性の高い画像読み込みと怠zyなロードテクノロジーを通じてユーザーエクスペリエンスが向上します。

HTML:Webページの構造の構築 HTML:Webページの構造の構築 Apr 14, 2025 am 12:14 AM

HTMLは、Webページ構造の構築の基礎です。 1。HTMLは、コンテンツ構造とセマンティクス、および使用などを定義します。タグ。 2. SEO効果を改善するために、などのセマンティックマーカーを提供します。 3.タグを介したユーザーの相互作用を実現するには、フォーム検証に注意してください。 4. JavaScriptと組み合わせて、動的効果を実現するなどの高度な要素を使用します。 5.一般的なエラーには、閉じられていないラベルと引用されていない属性値が含まれ、検証ツールが必要です。 6.最適化戦略には、HTTP要求の削減、HTMLの圧縮、セマンティックタグの使用などが含まれます。

HTML対CSS対JavaScript:比較概要 HTML対CSS対JavaScript:比較概要 Apr 16, 2025 am 12:04 AM

Web開発におけるHTML、CSS、およびJavaScriptの役割は次のとおりです。HTMLはコンテンツ構造を担当し、CSSはスタイルを担当し、JavaScriptは動的な動作を担当します。 1。HTMLは、セマンティクスを確保するためにタグを使用してWebページの構造とコンテンツを定義します。 2。CSSは、セレクターと属性を介してWebページスタイルを制御して、美しく読みやすくします。 3。JavaScriptは、動的でインタラクティブな関数を実現するために、スクリプトを通じてWebページの動作を制御します。

HTML対CSSおよびJavaScript:Webテクノロジーの比較 HTML対CSSおよびJavaScript:Webテクノロジーの比較 Apr 23, 2025 am 12:05 AM

HTML、CSS、およびJavaScriptは、最新のWebページを構築するためのコアテクノロジーです。1。HTMLはWebページ構造を定義します。2。CSSはWebページの外観に責任があります。

HTML:それはプログラミング言語か何か他のものですか? HTML:それはプログラミング言語か何か他のものですか? Apr 15, 2025 am 12:13 AM

htmlisnotaprogramminglanguage; itisamarkuplanguage.1)htmlStructuresandformatswebcontentusingtags.2)ItworkswithcsssssssssdjavascriptforInteractivity、強化を促進します。

&lt; strong&gt;&lt; b&gt;の違いは何ですかタグと&lt; em&gt;&lt; i&gt;タグ? &lt; strong&gt;&lt; b&gt;の違いは何ですかタグと&lt; em&gt;&lt; i&gt;タグ? Apr 28, 2025 pm 05:42 PM

この記事では、HTMLタグの違いについて説明します。、、、、、、、およびプレゼンテーションの使用とSEOとアクセシビリティへの影響に焦点を当てています。

See all articles