成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

浮動(dòng)布局所帶來的影響以及如何清除浮動(dòng)

開發(fā) 前端
在頁面的布局過程中浮動(dòng)是個(gè)好東西,我們經(jīng)常會(huì)用到浮動(dòng)布局,它可以使元素共享一行,極大的方便了我們的布局過程。但是很多人可能只是會(huì)用,對(duì)浮動(dòng)的原理只是一知半解,如果沒有清晰的認(rèn)識(shí)到浮動(dòng)所帶來的影響以及如何清除浮動(dòng)所帶來的影響,那么面對(duì)代碼量龐大的頁面將會(huì)變得一頭霧水。

在頁面的布局過程中浮動(dòng)是個(gè)好東西,我們經(jīng)常會(huì)用到浮動(dòng)布局,它可以使元素共享一行,極大的方便了我們的布局過程。但是很多人可能只是會(huì)用,對(duì)浮動(dòng)的原理只是一知半解,如果沒有清晰的認(rèn)識(shí)到浮動(dòng)所帶來的影響以及如何清除浮動(dòng)所帶來的影響,那么面對(duì)代碼量龐大的頁面將會(huì)變得一頭霧水。所以接下來我們來深入學(xué)習(xí)一下浮動(dòng)布局,相信大家把浮動(dòng)這個(gè)概念掌握的很清晰的時(shí)候,以后運(yùn)用起來將會(huì)更加得心應(yīng)手。

[[182598]]

一. 什么是浮動(dòng)布局?

CSS 的 Float(浮動(dòng)),會(huì)使元素向左或向右移動(dòng),使元素共享一行,類似于給元素加了inline-block的作用。在w3c中這樣描述浮動(dòng):浮動(dòng)的框可以向左或向右移動(dòng),直到它的外邊緣碰到包含框或另一個(gè)浮動(dòng)框的邊框?yàn)橹埂S捎诟?dòng)框不在文檔的普通流中,所以文檔的普通流中的塊框表現(xiàn)得就像浮動(dòng)框不存在一樣。接下來我們具體來看。

二. 浮動(dòng)帶來的影響

1. 脫離文檔流,不占據(jù)頁面空間

我們知道,css的塊級(jí)元素比如說div在頁面中默認(rèn)是獨(dú)占一行并且自上而下排列,也就是我們所說的流,也就是我們通常所說的標(biāo)準(zhǔn)流,接下來我們來看以下的案例:

html代碼:

 

  1. <div class="div1">150 * 100</div> 
  2. <div class="div2">100 * 150</div> 
  3. <div class="div3">300 * 200</div>  

 

css代碼:

  1. .div1{ 
  2.  
  3. width: 150px; 
  4.  
  5. height: 100px; 
  6.  
  7. background: pink; 
  8.  
  9.  
  10. .div2{ 
  11.  
  12. width: 100px; 
  13.  
  14. height: 150px; 
  15.  
  16. background: lavender; 
  17.  
  18.  
  19. .div3{ 
  20.  
  21. width: 300px; 
  22.  
  23. height: 200px; 
  24.  
  25. background: skyblue; 
  26.  

效果如下圖:

(一看這個(gè)顏色就知道樓主是個(gè)女孩紙,😋)

 

上圖結(jié)果分析:

在標(biāo)準(zhǔn)流的理論中,div作為塊級(jí)元素會(huì)獨(dú)占一行,但是布局中一個(gè)最常見的問題就是如何能讓多個(gè)div元素顯示在同一行,這時(shí),標(biāo)準(zhǔn)流已經(jīng)不能滿足我們的需求。此時(shí)我們就需要對(duì)元素進(jìn)行浮動(dòng),此時(shí)我如果想讓div1和div2顯示在同一行,就需要對(duì)這兩個(gè)元素添加浮動(dòng)屬性 float:left,此時(shí)我們來看一下結(jié)果:

 

上圖結(jié)果分析:

如上圖所示,可以看到,粉色的div和紫色的div覆蓋在了藍(lán)色div的上面。這是因?yàn)楦?dòng)元素脫離了標(biāo)準(zhǔn)流到了浮動(dòng)層,浮動(dòng)層比標(biāo)準(zhǔn)層要高并且不占據(jù)頁面空間,所以我們看到div1和div2覆蓋在了div3上面,雖然是覆蓋但是div3里面的文字會(huì)被擠走,此時(shí)div3仍然在標(biāo)準(zhǔn)層所以仍然是占據(jù)頁面空間的。

2. 浮動(dòng)會(huì)將行內(nèi)元素和行內(nèi)塊元素轉(zhuǎn)化為塊元素

上面講的塊元素可以進(jìn)行浮動(dòng),其實(shí)對(duì)于行元素和行內(nèi)塊元素也可以進(jìn)行浮動(dòng),并且一旦進(jìn)行了浮動(dòng)就將其轉(zhuǎn)化為了塊元素,我們這里以span標(biāo)簽來舉例。

html代碼:

 

  1. <span class="span1">span1</span> 
  2. <span class="span2">span2</span> 
  3. <span class="span3">span3</span> 

css代碼:

 

  1. .span1{ 
  2.     width: 200px; 
  3.     height: 200px; 
  4.     background: red; 
  5. .span2{ 
  6.     width: 200px; 
  7.     height: 200px; 
  8.     background: green; 
  9. .span3{ 
  10.     width: 200px; 
  11.     height: 200px; 
  12.     background: blue; 

 

結(jié)果如下:

 

眾所周知,span是最常見的行內(nèi)元素之一,行內(nèi)元素共享同一行,中間有間隔,寬度和高度屬性不起作用,此時(shí),我們給每個(gè)span1加浮動(dòng)屬性float:left,我們看一下會(huì)有什么樣的結(jié)果呢?結(jié)果如下圖所示:

 

很顯然,浮動(dòng)過后的元素寬度和高度屬性開始起作用,說明span元素從行標(biāo)簽變成了塊標(biāo)簽。

三. 清除浮動(dòng)

與其說是清除浮動(dòng),不如說是清除浮動(dòng)帶來的影響,我們一一來看清除浮動(dòng)常見的四種方法:

假如說我們要實(shí)現(xiàn)如下布局,上方是導(dǎo)航部分,下方是內(nèi)容部分,導(dǎo)航部分兩個(gè)塊左右浮動(dòng)。

 

接下來我們來看原始代碼,也就是未清除浮動(dòng)時(shí)候的代碼:

html代碼:

 

  1. <!-- 導(dǎo)航部分 --> 
  2. <div class="nav"> 
  3.     <div class="left">logo</div> 
  4.     <div class="right">右邊區(qū)域</div> 
  5. </div> 
  6. <!-- 內(nèi)容部分 --> 
  7. <div class="content"></div> 

css代碼:

  1. .nav{ 
  2.     width100%
  3.     background#c0c0c0
  4.     padding10px
  5. .left
  6.     width300px
  7.     height50px
  8.     background: pink; 
  9.     floatleft
  10. .right
  11.     width300px
  12.     height50px
  13.     background#abcdef
  14.     floatright
  15. }     
  16. .content{ 
  17.     height400px
  18.     backgroundurl("img/10.jpg"); 
  19.     background-size: cover; 

 

 

按照以上代碼,結(jié)果將如下圖:

 

結(jié)果分析:

我們知道,塊級(jí)元素如果沒有給高度,那么高度是由子元素還有padding值撐起來的,當(dāng)left和right浮動(dòng)之后脫離了文檔流,不再占據(jù)頁面空間,所以它們的父級(jí)的高度只有padding值,因而造成了上圖的結(jié)果。那么如何消除浮動(dòng)產(chǎn)生的影響呢?我們來看如下解決措施:

1. 給浮動(dòng)元素的父級(jí)一個(gè)高度。

 

  1. .nav{ 
  2.     width: 100%; 
  3.     height: 50px; 
  4.     background: #c0c0c0; 
  5.     padding: 10px; 

 

給浮動(dòng)元素的父級(jí)一個(gè)高度,使之占據(jù)頁面空間,這種寫法的優(yōu)點(diǎn)是簡單容易理解,但是缺點(diǎn)也很突出,不適用于高度不固定的div。

2. 給浮動(dòng)元素的父級(jí)加overflow:hidden

css代碼:

 

  1. .nav{ 
  2.     width: 100%; 
  3.     overflow: hidden; 
  4.     background: #c0c0c0; 
  5.     padding: 10px; 
  6. }  

 

overflow:hidden 的意思是超出的部分要裁切隱藏掉,那么如果 float 的元素不占普通流位置,普通流的包含塊要根據(jù)內(nèi)容高度裁切隱藏。如果高度是默認(rèn)值auto,那么不計(jì)算其內(nèi)浮動(dòng)元素高度就裁切,就有可能會(huì)裁掉float元素。所以如果沒有明確設(shè)定容器高情況下,它要計(jì)算內(nèi)容全部高度才能確定在什么位置hidden,浮動(dòng)的高度就要被計(jì)算進(jìn)去,順帶達(dá)成了清理浮動(dòng)的目標(biāo)。

3. 給浮動(dòng)元素的兄弟元素加clear:both

html代碼:

 

  1. <div class="nav"
  2.      <div class="left">logo</div> 
  3.      <div class="right">右邊區(qū)域</div> 
  4.      <div class="clear"></div> 
  5. </div> 

 

css代碼:

 

  1. .clear{ 
  2.     clear: both; 
  3. }  

 

在實(shí)際項(xiàng)目的布局中遇到的很多問題都是因?yàn)闆]有清除浮動(dòng)而造成的,所以一定要養(yǎng)成寫完一部分代碼就清除浮動(dòng)的習(xí)慣。

祝學(xué)習(xí)進(jìn)步,工作順利!

責(zé)任編輯:張燕妮 來源: 博客園
相關(guān)推薦

2023-05-15 08:34:36

css浮動(dòng)

2010-08-23 10:04:48

CSS浮動(dòng)

2010-08-31 15:33:28

clearCSS

2010-09-14 17:07:26

DIV浮動(dòng)定位CSS

2010-09-01 12:50:04

CSS清除浮動(dòng)

2010-09-02 14:17:56

CSS浮動(dòng)

2010-09-13 12:56:56

CSSpositionfloat

2010-09-14 14:42:24

FlashDIV CSS

2020-11-10 08:31:09

網(wǎng)頁強(qiáng)制登錄浮動(dòng)層

2010-08-31 13:18:22

CSS浮動(dòng)

2010-09-01 14:02:27

絕對(duì)定位浮動(dòng)CSS

2021-08-11 16:34:02

浮動(dòng)路由路由網(wǎng)絡(luò)技術(shù)

2020-12-18 05:40:37

CSS clearHtml

2010-09-07 15:38:42

CSS絕對(duì)定位浮動(dòng)

2010-09-02 09:14:35

CSS浮動(dòng)

2009-12-09 11:06:53

浮動(dòng)靜態(tài)路由

2011-05-12 10:48:49

CSS清理浮動(dòng)

2010-09-02 15:32:51

CSSfloat

2024-03-19 09:06:14

CSS父元素元素

2015-08-05 10:31:52

數(shù)據(jù)中心浮動(dòng)數(shù)據(jù)中心
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 欧美色欧美亚洲另类七区 | 国内精品免费久久久久软件老师 | 精品国产乱码一区二区三区a | 欧产日产国产精品国产 | 91伦理片| 中文字幕精品一区 | 精品久久久久久久久久久久久久久久久 | 不卡视频一区二区三区 | www.xxxx欧美| 伊人激情综合网 | 男女网站免费观看 | 国产免费视频在线 | 欧美性网站 | 国产一区二区三区 | 亚洲成人一区二区 | 中文字幕视频在线 | 成人精品久久 | 日韩精品中文字幕一区二区三区 | 天堂网av在线 | 超碰导航 | 亚洲男人天堂 | 先锋资源站 | 在线亚洲人成电影网站色www | 中文字幕亚洲区一区二 | 91久久久久久久 | 96av麻豆蜜桃一区二区 | 97操操| 国产精品中文字幕在线 | 黄视频网站免费观看 | 国产.com| 国产高清视频一区 | 欧美日韩国产精品激情在线播放 | 在线看91| 亚洲精品乱码久久久久久久久久 | 99精品欧美一区二区三区 | 亚洲精品二三区 | 秋霞av国产精品一区 | 国产98在线 | 免费, | 亚洲视频免费在线观看 | 亚洲精品av在线 | 精品国产乱码久久久久久果冻传媒 |