免费人妻精品一区二区三区-人人玩人人添人人澡东莞-很黄很色很污18禁免费-视频一区二区三区四区五区-久久99精品久久久久久9-国产97色在线 | 国-伊人七七-已婚少妇美妙人妻系列-欧美俄罗斯乱妇-奇米在线-国产精品99久久精品爆乳-欧美精品乱码视频一二专区-又大又爽又黄无码a片-粉嫩绯色av一区二区在线观看-国产爆乳无码av在线播放

CSS屬性之float的浮動

2016/8/30 8:50:56   閱讀:1541    發布者:1541

我們來看看CSS重要屬性--float。


以下內容分為如下小節:


1:float屬性

2:float屬性的特性    

  2.1:float之文字環繞效果

  2.2:float之父元素高度塌陷

3:清除浮動的方法

  3.1:html法

  3.2:css偽元素法

4:float去空格化

5:float元素塊狀化

6:float流體布局    

  6.1:單側固定

  6.2:DOM與顯示位置不同的單側固定

  6.3:DOM與顯示位置相同的單側固定

  6.4:智能布局
    

1:float屬性


  float,顧名思義是漂浮,浮動的意思。但是在css中,它被理解成浮動。float有四個屬性,即

1 float:none; 
2 float:left; 
3 float:right; 
4 float:inherit;

比較常用的兩個屬性值是左浮動和右浮動。在接下來的分享中,只會拿左浮動作為例子。
其他浮動屬性值與左浮動原理相同。


2:float屬性的特性


2.1:float之文字環繞效果

浮動的初衷就是為了文字環繞效果。

看如下代碼和demo。

1 <div class="container"> 
2     <div class="content"></div> 
3     <p> 
4 Hello World!Hello World!Hello World!Hello World!Hello World!Hello World!
Hello World!Hello World!Hello World!Hello World!Hello World!Hello
World!Hello World!Hello World!Hello World!Hello World!Hello World!Hello
World!Hello World!Hello World!Hello World!Hello World!Hello World!
Hello World!Hello World!Hello World! 5 </p> 6 </div>
 1 .container { 
 2   width: 300px; 
 3   height: 300px; 
 4   border: 1px solid black; 
 5 } 
 6 .container .content { 
 7   float: left; 
 8   width: 150px; 
 9   height: 150px; 
10   background-color: lightpink; 
11   margin: 5px; 
12 }

content 元素設置了左浮動,使div元素脫離文檔流,文字在其周圍壞繞顯示。


  2.2:float之父元素高度塌陷


以div元素為例。div元素的高度會通過內容自動撐開。也就是說,內容有多少,高度就有多高。
但是當內部元素設置了float屬性之后,會是父元素高度塌陷。代碼和實例如下。 

1 <div class="container"> 
2     <p> 
3 Hello World!Hello World!Hello World!Hello World!Hello World!Hello World!
Hello World!Hello World!Hello World!Hello World!Hello World!Hello World!
Hello World!Hello World!Hello World!Hello World!Hello World!Hello World!
Hello World!Hello World!Hello World!Hello World!Hello World!Hello World!
Hello World!Hello World! 4 </p> 5 </div>


  如下,塌陷后css和demo。

1 .container { 
2   width: 300px; 
3   border: 1px solid black; 
4 } 
5 .container p { 
6   float: left; 
7 }

 

可以看出,子元素設置浮動前后發生的變化。

3:清除浮動的方法

那么問題來了,如果內部元素要設置浮動,那如何避免父元素高度塌陷的問題呢?


有同學肯定會想,直接在父元素設置高度不就可以了嗎?這在實際中是不行的。
因為如果固定了父元素的高度,那如果之后想在其添加內容,不是又要去修改css代碼了,特麻煩。
那解決父元素高度塌陷有兩種方法。
3.1:父元素底部添加空div,然后在添加屬性clear : both

  代碼如下。

1         <div class="container"> 
2             <p> 
3             Hello World!Hello World!Hello World!Hello World!Hello World!Hello World!
Hello World!Hello World!Hello World!Hello World!Hello World!
Hello World!Hello World!Hello World!Hello World!Hello World!Hello World!Hello World!
Hello World!Hello World!Hello World!Hello World!Hello World!
Hello World!Hello World!Hello World! 4 </p> 5 <div class="clearfix"></div> 6 </div>
 1 .container { 
 2   width: 300px; 
 3   border: 1px solid black; 
 4 } 
 5 .container p { 
 6   float: left; 
 7 } 
 8 .container .clearfix { 
 9   overflow: hidden; 
10   *zoom: 1; 
11 }


  3.2:父元素設置偽類after。

1         <div class="container"> 
2             <p> 
3             Hello World!Hello World!Hello World!Hello World!Hello World!Hello World!
Hello World!Hello World!Hello World!Hello World!Hello World!
Hello World!Hello World!Hello World!Hello World!Hello World!Hello World!
Hello World!Hello World!Hello World!Hello World!Hello World!
Hello World!Hello World!Hello World!Hello World! 4 </p> 5 </div>
 1 .container { 
 2   width: 300px; 
 3   border: 1px solid black; 
 4   *zoom: 1; 
 5 } 
 6 .container p { 
 7   float: left; 
 8 } 
 9 .container:after { 
10   content: ""; 
11   display: table; 
12   clear: both; 
13 }

 


4:float元素去空格化

是什么意思呢?在平時的編碼中,為了要符合HTML編碼規范,都會為html標簽添加縮進,
達到美觀的效果。可是縮進時就會產生空格,也就是&nbsp;。當給元素設置左浮動時,
元素本身左浮動,剩余的空格會被擠到最后,也就是上文所說的文字環繞效果。
但是,要記住一點,&nbsp;和回車敲下的空格的效果略有不同。


5:float元素塊狀化

在為內聯元素設置浮動屬性之后,display屬性由inline變成block。并且可以為內聯元素設置寬高。
使用float加width屬性可以實現一些簡單的固定寬度的布局效果。

6:float流體布局 

 

  6.1:單側固定,右側自適應的布局。

1         <div class="container"> 
2             <div class="left">左浮動+固定寬度</div> 
3             <div class="right">右邊自適應寬度+margin-left</div> 
4         </div>
 1 .container{ 
 2     max-width:90%; 
 3     margin:0 auto; 
 4 } 
 5  
 6 .left{ 
 7     float:left; 
 8     text-align:center; 
 9     background-color: lightpink; 
10     width: 200px; 
11     height:300px; 
12 } 
13  
14 .right{ 
15     background-color: lightyellow; 
16     margin-left:200px; 
17     height:300px; 
18     padding-left:10px; 
19 }


6.2:DOM與顯示位置不同的單側固定

1         <div class="container"> 
2             <div class="right">右浮動+固定寬度</div> 
3             <div class="left">左邊自適應寬度+margin-right</div> 
4         </div>
 1 .container { 
 2   max-width: 90%; 
 3   margin: 0 auto; 
 4 } 
 5 .container .right { 
 6   float: right; 
 7   width: 200px; 
 8   height: 200px; 
 9   background-color: lightpink; 
10 } 
11 .container .left { 
12   background-color: lightyellow; 
13   margin-right: 200px; 
14   height: 300px; 
15   padding-left: 10px; 
16 }

 

 也就是說,html元素與顯示在頁面上的元素位置不相同。


 6.3:DOM與顯示位置相同的單側固定 

1         <div class="container"> 
2             <div class="left-content"> 
3                 <!-- 左浮動+width100% --> 
4                 <div class="left">margin-right</div> 
5             </div> 
6             <div class="right">左浮動+固定寬度+margin-left負值</div> 
7         </div>
 1 .container { 
 2   max-width: 90%; 
 3   margin: 0 auto; 
 4 } 
 5 .container .right { 
 6   float: left; 
 7   width: 200px; 
 8   height: 200px; 
 9   background-color: lightpink; 
10   margin-left: -200px; 
11   height: 300px; 
12 } 
13 .container .left { 
14   background-color: lightyellow; 
15   margin-right: 200px; 
16   height: 300px; 
17   text-align: center; 
18 }


6.4:智能布局


所謂智能布局,就是兩欄都不需要設置寬度,寬度隨內容自適應。

 1         <div class="container"> 
 2             <div class="left"> 
 3                 float+margin-right+自適應寬度 
 4             </div> 
 5             <div class="right"> 
 6                 display:table-cell  ---IE8+; 
 7                 display:inline-block   ---IE7+; 
 8                 自適應寬度 
 9             </div> 
10         </div>
 1 .container { 
 2   max-width: 90%; 
 3   margin: 0 auto; 
 4 } 
 5 .container .left { 
 6   float: left; 
 7   height: 300px; 
 8   background-color: lightpink; 
 9 } 
10 .container .right { 
11   display: table-cell; 
12   *display: inline-block; 
13   height: 300px; 
14   background-color: lightyellow; 
15 }
 1 .container { 
 2   max-width: 90%; 
 3   margin: 0 auto; 
 4 } 
 5 .container .left { 
 6   float: left; 
 7   height: 300px; 
 8   background-color: lightpink; 
 9 } 
10 .container .right { 
11   display: table-cell; 
12   *display: inline-block; 
13   height: 300px; 
14   background-color: lightyellow; 
15 }

 




總結以下:

1:當一個元素設置float屬性時,會使元素塊狀化。

2:float屬性的創造初衷就是為了文字環繞效果而生的。

3:float元素會使父元素高度塌陷。

4:float元素會除去換行帶來的空格。

5:使用float可以實現兩欄自適應的布局。

主站蜘蛛池模板: 伊人久久精品欧洲综合网 | 一本色道久久88亚洲精品综合 | 亚洲乱码国产一区三区 | 成人国产网站v片免费观看 九九视频在线观看 | 女学生14毛片视频片二毛 | www.狠狠撸.com| 蜜臀av色欲a片无人一区 | 黄色aa毛片 | 精品麻豆丝袜高跟鞋av | 亚洲小说图区综合在线 | 俄罗斯兽交黑人又大又粗水汪汪 | 688欧美人禽杂交狂配 | 欧美三日本三级少妇99 | www成人免费视频 | 无码人妻精品一区二区三区久久久 | 浓毛欧美老妇乱子伦视频 | 男女在线免费观看 | 99精品视频在线观看免费蜜桃 | 中文字幕在线国产 | 亚洲精品无码永久中文字幕 | 在线免费观看国产精品 | 国产成在线观看免费视频 | 五月婷婷六月婷婷 | 精品极品三大极久久久久 | 国产日韩欧美中文字幕 | 久久精品天堂 | 国产男女乱婬真视频免费 | 无码人妻出轨黑人中文字幕 | 日本少妇吞精囗交视频 | 日韩av在线免费 | 老太脱裤让老头玩ⅹxxxx | 亚洲色欲久久久久综合网 | 天天摸天天碰 | 东京热人妻中文无码av | а天堂中文最新一区二区三区 | 国产精品91一区 | 中文字幕在线视频网站 | 欧美人与性动交xxⅹxx | 奇米在线观看 | 菠萝蜜视频在线观看入口 | 中文字幕一区2区3区 | 亚洲精品午夜久久久伊人 | 懂色av中文一区二区三区天美 | 久久久久久久久久久久福利 | 欧美人与动xxxxz0oz视频 | 一区二区三区在线观看av | 成人在线观看网址 | 中文文字幕中文字幕在线中文乱码 | 国精产品一品二品国精品69xx | 国产成人精品亚洲日本在线 | 久久和欧洲码一码二码三码 | 久久久久国产精品人妻aⅴ武则天 | 在线 欧美 中文 亚洲 精品 | 免费看黄色av| 秋霞久久久久久一区二区 | 欧美一级在线免费观看 | 精品人妻码一区二区三区 | 久久99精品久久久 | 99福利| 69久久久久 | 午夜精品久久久久久久久久蜜桃 | 精品深夜av无码一区二区 | 午夜理论欧美理论片 | 人妻少妇无码精品视频区 | 国产精品186在线观看在线播放 | aaa少妇高潮大片免费看088 | 在线免费观看av网站 | 亚洲精品国产av成拍色拍个 | 日毛片 | 亚洲欧美综合成人五月天网站 | 一级黄色片子免费看 | 一本一本久久aa综合精品 | 亚洲精品第一区二区三区 | 日本毛茸茸bbbbb潮喷 | 日本黄漫动漫在线观看视频 | 在线成人看片黄a免费看 | 永久免费看片在线 | 亚洲乱理伦片在线观看中字 | 国产精品久久久久久一二三四五 | 亚洲男同gv在线观看 | 不卡av电影在线 | 18av在线视频| 中文字幕日韩人妻无码 | 欧美囗交做爰视频 | 日本一区二区三区爆乳 | 色欲国产精品一区成人精品 | 69av在线视频| 亚洲综合福利 | 波多野结衣二区三区 | 93看片淫黄大片一级 | 欧美牲交a欧牲交aⅴ久久 | 亚洲国产一区二区三区在观看 | 国内精品久久久久影院嫩草 | 男女免费毛片 | 国产精品原创av片国产日韩 | 被窝福利片久久福利片 | 国产精品成人久久久久 | 大陆熟妇丰满多毛xxxⅹ | 久久自己只精产国品 |