免费人妻精品一区二区三区-人人玩人人添人人澡东莞-很黄很色很污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可以實現兩欄自適應的布局。

主站蜘蛛池模板: 国产成人亚洲综合网色欲网久下载 | 久久精品国产77777蜜臀 | 成人免费午夜性大片 | 农村末发育av片一区二区 | 国产456 | 激情偷乱人成视频在线观看 | 亚洲日韩乱码中文无码蜜桃臀网站 | 欧洲色区| 中文字幕亚洲欧美日韩2019 | 九月婷婷 | 91吃瓜在线| 欧美精品在线观看 | 国产综合有码无码中文字幕 | 手机在线亚洲国产精品 | 中文字幕一区二区在线视频 | 四虎网站最新网址 | 亚洲欧美日韩精品久久亚洲区 | 高清一二三区 | 国产成人午夜福利在线小电影 | 黄色一级大片在线免费看产 | 亚洲色无码专线精品观看 | 夜夜躁狠狠躁 | 性色a码一区二区三区天美传媒 | 天堂va欧美ⅴa亚洲va免费 | 国产精品女主播 | 日本三级欧美三级人妇视频黑白配 | 一区二区三区麻豆 | 国产99久一区二区三区a片 | 国产成人精品a视频免费福利 | 国产精品无码无片在线观看3d | 曰批视频免费30分钟成人 | 亚洲性人人天天夜夜摸18禁止 | 337p粉嫩大胆噜噜噜亚瑟影院 | 国产无遮挡a片又黄又爽 | 9l国产精品久久久久尤物 | 免费裸体黄网站18禁免费 | 国产草逼视频 | www.一区 | 亚洲欧美日韩愉拍自拍 | 亚洲阿v天堂无码在线 | 日韩精品无码专区免费视频 | 精品国产v无码大片在线看 欧美白妞大战非洲大炮 | 在线日韩亚洲 | 日韩在线激情 | 丝袜综合网 | 黄色天堂| 亚洲爆乳成av人在线蜜芽 | 在线免费成人 | 久久香蕉网 | 少妇人妻偷人精品无码视频新浪 | 久久不见久久见中文字幕免费 | 伊人看片 | 免费观看日韩钙片gv网站 | 久久靠逼视频 | 九色视频在线播放 | 男同志毛片特黄毛片 | 亚洲精品 欧美 | 校园春色综合 | 国产草草影院ccyycom | 国产又黄又爽又刺激的免费网址 | 亚洲爆乳无码一区二区三区 | 国产亚洲精品久久久ai换 | 男人懂得网站 | 97se狠狠狠狠狼亚洲综合网 | 日韩一区二区三区av | 四虎成人精品一区二区免费网站 | 成人免费在线视频观看 | 国厂精品114福利电影免费 | 天堂网www天堂资源网 | 熟妇人妻无乱码中文字幕真矢织江 | 国产 中文 制服丝袜 另类 | 日韩精品中文字幕无码一区 | 免费播放婬乱男女婬视频国产 | 日韩午夜av | 无码无套少妇毛多18p | 国产乱码精品一区二区三区忘忧草 | 国产精品一区二区毛片 | 日本网站在线免费观看 | 国产人妻精品一区二区三区不卡 | 超碰在线| 欧美成人91 | 曰韩免费无码av一区二区 | 亚洲午夜免费 | 久久久久高潮毛片免费全部播放 | 综合激情在线 | 一本色综合亚洲精品蜜桃冫 | 国产精品成人av电影不卡 | 久久久鲁鲁鲁 | 一区二区三区国产精品保安 | 吃奶揉捏奶头高潮视频在线观看 | 好男人资源在线社区 | 亚洲欧美中文日韩v在线观看不卡 | 亚洲乱亚洲乱妇 | 欧美 国产 综合 欧美 视频 | 亚洲天堂男人影院 | 亚洲网色| 乱色国内精品视频在线 | 亚洲成av人无码不卡影片 | 国产又大又黄又粗 |