国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

首頁 web前端 css教學(xué) css中Float屬性詳解

css中Float屬性詳解

Mar 22, 2018 pm 03:15 PM
css float

這次帶給大家css中Float屬性詳解,使用css中Float屬性的注意事項有哪些,下面就是實戰(zhàn)案例,一起來看一下。

一、Float的特性

#1. 套用於文字圍繞圖片

2. 建立一個區(qū)塊級框

3. 多列浮動佈局

4. 浮動元素的寬度、高度自適應(yīng),但可以設(shè)定其值。

二、核心解決的問題

文字圍繞圖片:img標(biāo)籤與多個文字標(biāo)籤放置在一個容器中,如果img浮動,文字標(biāo)籤會圍繞圖片。

<img src="../img/a.jpg" style=" width: 100px; height: 200px; float: left;" alt="">
????????<p>001文件內(nèi)容文件內(nèi)容文內(nèi)容文件內(nèi)容<br/>
????????文件內(nèi)容文件內(nèi)容文件內(nèi)容文件內(nèi)容文件內(nèi)內(nèi)容文件內(nèi)容<br/>
????????文件內(nèi)容文件內(nèi)容文件內(nèi)容文件內(nèi)容文件內(nèi)容<br/>?
????????文件內(nèi)容文件內(nèi)容文件內(nèi)容文件內(nèi)容文內(nèi)容文件內(nèi)容文件內(nèi)容<br/>
????????<p>p標(biāo)簽文件內(nèi)容文件內(nèi)容文件內(nèi)容文件內(nèi)容文件內(nèi)容文容文件內(nèi)容文件內(nèi)容文件內(nèi)容</p>
????????<p>p標(biāo)簽文件內(nèi)容文件內(nèi)容文件內(nèi)容文件內(nèi)容文件內(nèi)容文件內(nèi)容</p>
????????文件內(nèi)容文件內(nèi)容文件內(nèi)容文件件內(nèi)容文件內(nèi)容文件內(nèi)容<br/>
????????文件內(nèi)容文件內(nèi)容文件內(nèi)容文件內(nèi)容文件內(nèi)容文件內(nèi)容文件內(nèi)容文件內(nèi)容<br/>?
????????文件內(nèi)容文件內(nèi)容文件內(nèi)容文件內(nèi)容文件內(nèi)容文件內(nèi)內(nèi)容文件內(nèi)容<br/>
????????文件內(nèi)容文件內(nèi)容文件內(nèi)容文件容文件內(nèi)容文件內(nèi)容<br/>
????????文件內(nèi)容文件內(nèi)容文件內(nèi)容文件容文件內(nèi)容文件內(nèi)容<br/>
????????</p>

2.1 這是一個問題

浮動元素與正常元素相鄰,且浮動元素與正常元素之間沒有清除浮動,此時正常元素會被浮動元素蓋住,但包含的內(nèi)容會圍繞浮動元素顯示。

<p style="width: 100px; height: 200px; background: red;float: left;" >001</p>?
<p style="width: 100px; height: 200px; background: gray;float: none;" ><p>002</p></p>

001浮動,002沒有浮動,但002元素本身被001蓋住,但內(nèi)容卻圍繞001顯示。

三、非核心且主要應(yīng)用領(lǐng)域

分欄佈局:讓區(qū)塊先水平排列,然後超出部分另起一行。

主要特徵

1.父級高度塌陷(這也是一個嚴(yán)重的問題)

.wrap{
???????????background:red;?
???????????padding:10px;
???????????width:auto;
????????}
????????.left{
????????????background:gray;
????????????width:200px;
????????????height:100px;
????????????float:left;
????????}
????????.right{
????????????background:yellow;
????????????width:100px;
????????????height:100px;
????????????float:left;
????????}
<p class="wrap">
????????<p class="left">left</p>
????????<p class="right">right</p>
</p>

2.寬、高變成自適應(yīng)子元素,但寬、高的設(shè)定有效

.wrap{
???????????background:red;?
???????????padding:10px;
???????????float:left;
????????}?
????????.left{
????????????width:100px;
????????????background:gray;
????????}
????????.right:{
????????????width:200px;
????????????background:yellow;
????????}
<p class="wrap">
????????<p class="left">left</p>
????????<p class="right">right</p>
</p>

#2. 解決高度塌陷的問題

##首先我們需要了解BFC和IFC這兩人個基本的概念,因為他與瀏覽器的渲染有著密切的關(guān)係。

1.BFC(區(qū)塊層級格式化上下文)

他是一個獨立渲染的區(qū)域,規(guī)定區(qū)域內(nèi)部如何佈局,且與外部毫不相干,主要規(guī)則如下:

1.1 內(nèi)部的box會垂直方向,一個接一個地放置

1.2 Box垂直方向的距離由margin決定,屬於同一個BFC的兩個相鄰box的Margin會發(fā)生重疊

1.3 BFC區(qū)域不會與float重疊

.head{
????????????background:pink;
????????????margin:?20px?0px;
????????????height:100px;
????????}
????????.wrap{
???????????background:red;?
???????????padding:10px;
???????????margin:20px?0px;
???????????overflow:hidden;
????????}?
????????.left{
????????????width:100px;
????????????background:gray;?
????????????margin:10px?0px;
????????}
????????.right:{
????????????width:200px;
????????????background:yellow;??
????????????margin:20px?0px;
????????}
<p class="head">head</p>
????<p class="wrap">
????????<p class="left">left</p>
????????<p class="right">right</p>
????</p>

.head與.wrap兩個box之間上下各設(shè)置有20px的外邊距,但發(fā)生了重疊;

.head與.left兩個之間,.head有20px的外邊距,.left有10px的外邊距,沒有發(fā)生重疊,因為.wrap使其創(chuàng)建了BFC(overflow:hidden) 。

1.4 每個box的margin 左邊,與包含border box的左邊相接觸(右邊一樣),浮動也是如此

2. IFC(行級格式化上下文)

框從包含區(qū)塊的頂部開始,一個接一個水平放置。水平方向上的外邊距、邊框、內(nèi)邊距所佔空間都放在一起(display為inline、inline-block;元素本身俱有inline特性的元素都具體以下特徵)。規(guī)則如下:

2.1 不能指定寬高

2.2 Margin、Padding、border垂直方向的無效

2.3 行框的左邊緊貼包含區(qū)塊的左邊,而行框的右邊緊貼其包含框的右邊,而浮動塊可以插入在包含塊邊緣與行框之間。

2.4 行內(nèi)框高度由

line-height決定。

此節(jié)範(fàn)例可以參考display章節(jié)的inline元素。

3. 解決方案

主要根據(jù)BFC的原理實現(xiàn),因為BFC的渲染的是整塊區(qū)域,也就會計算出寬、高。這也是傳說中的清除浮動的方案

3.1 父容器創(chuàng)建BFC方法

3.1.1 創(chuàng)建BFC的方法

a) Float除了none以外的取值;

b) Overflow除了visible以外的值;

c) Display值為table-cell、table-caption、inline-block、flex、inline-flex等

d) Position值為absloute、fixed

e) Fieldset元素

3.1.2 清除浮動

a) Float、overflow、display三種方式都可以清除浮動,但position、fieldset雖然創(chuàng)建了bfc但不可以清除浮動(也就是不能解決高度塌陷的問題)。主要原因為:position、fieldset都需要子元素來撐開父容器的高度,但子元素浮動后又不存在高度,所以失效。

b) Float、overflow、display示例代碼:

.wrap{
????????????background:?gray;
????????????padding:?10px;
????????????overflow:?auto;
????????}
????????.left,?.right{
????????????background:?red;
????????????float:?left;
????????????width:?200px;
????????????height:?100px;
????????}
????????.right{
????????????background:?yellow;
????????}
????????.footer{
????????????background:?pink;
????????}
<p class="wrap" >
????????<p class="left">left</p>
????????<p class="right">right</p>
????</p>
<p class="footer">footer</p>

3.1.3 最后一個子元素clear:both

利用clear:both觸發(fā)父容器重新計算高度的原理實現(xiàn),示例代碼如下:

.wrap{
????????????background:?gray;
????????????padding:?10px;?
????????}
????????.left,?.right{
????????????background:?red;
????????????float:?left;
????????????width:?200px;
????????????height:?100px;
????????}
????????.right{
????????????background:?yellow;
????????}
????????.footer{
????????????background:?pink;
????????}
????????.clear{
????????????clear:?both;
????????????zoom:?1;
????????}
<p class="wrap" >
????????<p class="left">left</p>
????????<p class="right">right</p>
????????<p class="clear"></p>
????</p>
<p class="footer">footer</p>

3.1.4 After添加最后一個子元素

利用css的:after偽元素實現(xiàn),動態(tài)插入元素并清除浮動:

.wrap{
????????????background:?gray;
????????????padding:?10px;?
????????}
????????.wrap:after{
????????????content:?'';
????????????display:?block;
????????????overflow:?hidden;
????????????clear:?both;
????????}
????????.left,?.right{
????????????background:?red;
????????????float:?left;
????????????width:?200px;
????????????height:?100px;
????????}
????????.right{
????????????background:?yellow;
????????}
????????.footer{
????????????background:?pink;
????????}
<p class="wrap" >
????????<p class="left">left</p>
????????<p class="right">right</p>?
????</p>
<p class="footer">footer</p>

4. 總結(jié)

1. 利用bfc方式清除浮動,簡單、瀏覽器支持良好,但在IE6-版本支持存在問題。但是存在以下局限性,要適環(huán)境而用:

??? a) Overflow方式:滾動條會被隱藏,如果子內(nèi)容超高則存在顯示不全的問題;

??? b) Float方式:讓父容器浮動,那么就存在對父容器同輩元素的影響;

??? c) Dipslay方式:讓父容器變?yōu)閠able或者flex等,都存在不明確的影響,大家都不推薦使用。

2. 最佳解決方案:利用:after添加一個偽元素并給予clear:both和zoom:1來實現(xiàn)清除浮動,兼容性好,對環(huán)境影響最小。

相信看了本文案例你已經(jīng)掌握了方法,更多精彩請關(guān)注php中文網(wǎng)其它相關(guān)文章!

推薦閱讀:

CSS實現(xiàn)3D按鈕效果

opacity透明度濾鏡的IE兼容解決方法

水平垂直居中的方法

以上是css中Float屬性詳解的詳細(xì)內(nèi)容。更多資訊請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強(qiáng)大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

HTML5 新增語義化標(biāo)籤(如 section、article)如何正確使用? HTML5 新增語義化標(biāo)籤(如 section、article)如何正確使用? May 23, 2025 pm 11:36 PM

我們使用語義化標(biāo)籤的原因是它們能提升SEO、增強(qiáng)無障礙訪問和代碼可維護(hù)性。 1.使用時需包含標(biāo)題,避免濫用。 2.使用表示獨立內(nèi)容塊,適合博客或新聞。 3.注意標(biāo)籤的嵌套和SEO,不要為了SEO堆砌標(biāo)籤。

我如何將CSS與React一起包含? 我如何將CSS與React一起包含? May 26, 2025 am 12:01 AM

在React中包含CSS的方法有五種:1.使用內(nèi)聯(lián)樣式,簡單但不利於復(fù)用和維護(hù);2.使用CSS文件,通過導(dǎo)入實現(xiàn),利於組織但可能導(dǎo)致衝突;3.使用CSSModules,避免全局衝突但需配置;4.使用StyledComponents,利用JavaScript動態(tài)生成樣式但需依賴庫;5.使用Sass或Less,提供更多功能但增加構(gòu)建複雜性。

如何僅在某些頁面上包括CSS? 如何僅在某些頁面上包括CSS? Jun 11, 2025 am 12:01 AM

選擇性包含CSS在特定頁面上的方法有三種:1.內(nèi)聯(lián)CSS,適用於不常訪問或需要獨特樣式的頁面;2.使用JavaScript條件加載外部CSS文件,適合需要靈活性的情況;3.服務(wù)器端包含,適用於使用服務(wù)器端語言的場景。這種方法可以優(yōu)化網(wǎng)站性能和可維護(hù)性,但需平衡模塊化與性能。

CSS包容方法:優(yōu)點,缺點和示例 CSS包容方法:優(yōu)點,缺點和示例 Jun 07, 2025 am 12:03 AM

ThedifferentmethodsforincludingCSSinawebpageareinline,internal,andexternalCSS.1)InlineCSS:Easytoimplementbutleadstounmaintainablecode.2)InternalCSS:MoreorganizedthaninlinebutcanclutterHTML.3)ExternalCSS:Bestforlargerprojects,promotesmaintainabilityan

在您的網(wǎng)站中包括CSS的最佳實踐 在您的網(wǎng)站中包括CSS的最佳實踐 May 24, 2025 am 12:09 AM

thebestpractices forcludingcssinawebsiteare:1)use externalcssforeparationfcontentand和presentation,可重複使用性和cachingbenefits.2)考慮使用cesspreprocessorslikesSassOssorDularity.3)

如何處理CSS和病例敏感性 如何處理CSS和病例敏感性 May 25, 2025 am 12:02 AM

CSSismostlycase-insensitive,butselectorsandcustompropertiesarecase-sensitive.1)Useconsistentcasingconventions.2)EmploylinterslikeStylelint.3)Testacrossbrowsers.4)Bemindfulofexternalresources'conventions.Consistentcasinghelpsmaintaincodecleanlinessand

溢出屬性如何管理超過元素邊界的內(nèi)容? 溢出屬性如何管理超過元素邊界的內(nèi)容? Jun 09, 2025 am 12:16 AM

overflow屬性通過隱藏、滾動或自動調(diào)整處理溢出內(nèi)容,主要值包括1.hidden直接裁剪;2.scroll始終顯示滾動條;3.auto按需顯示滾動條;4.overflow-x與overflow-y可分別控制水平和垂直溢出。 1.overflow:hidden用於卡片佈局或動畫效果避免內(nèi)容溢出;2.overflow:scroll適用於聊天窗口或固定尺寸側(cè)邊欄保持界面一致;3.overflow:auto適合表格或用戶生成內(nèi)容實現(xiàn)靈活滾動;4.overflow-x和overflow-y獨立設(shè)置時需注

See all articles