小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

float?left?或者float?right?詳解-HTML-XHTML-CSS-PQ...

 the-climb 2011-03-14

float left 或者float right 詳解

文章來源:沉寂    點擊數(shù):45     更新時間:2010-12-27 11:23:57 字體:[ ]

 

CSS中很多時候會用到浮動來布局,也就是經(jīng)常見到的float:left或者float:right,簡單點來說,前者是左浮動(往左側(cè)向前邊的非浮動元素飄,全是飄得元素的話,就按照流式來浮動從左到右,放不下則換行),后者是右?。ㄍ绎h)動。但僅僅是如此嗎?

 

No!

要注意以下幾點:

1、  浮動元素會被自動設(shè)置成塊級元素,相當(dāng)于給元素設(shè)置了display:block(塊級元素能設(shè)置寬和高,而行內(nèi)元素則不可以)。

2、  浮動元素后邊的非浮動元素顯示問題。

3、  多個浮動方向一致的元素使用流式排列,此時要注意浮動元素的高度。

4、子元素全為浮動元素的元素高度自適應(yīng)問題。

 

以下詳細分析四個問題。

 

一、浮動元素自動變塊級元素

首先說說塊級元素和行內(nèi)元素區(qū)別,簡單的來說,塊級元素獨占一行,可以設(shè)置寬高以及邊距,行內(nèi)元素不會獨占一行,設(shè)置寬高行距等不會起效。常見的塊級元素有:h1~h6、pdiv、ul、table,常見的行內(nèi)元素有:span、a、inputselect等。

 

示例代碼:

<div style="height: 200px; width: 200px;">

        <span style="float: left; width: 150px; height: 150px; margin: 5px; padding: 5px;

            border: solid 1px red; background-color: Olive;">浮動元素span</span>

    </div>

    <div style="height: 200px; width: 200px;">

        <span style="width: 150px; height: 150px; margin: 5px; padding: 5px; border: solid 1px red;

            background-color: Olive;">浮動元素span</span>

    </div>

 

效果如下:

 

 

 

二、浮動元素后的非浮動元素問題

浮動元素后邊的元素若是非浮動行內(nèi)元素且因為定位產(chǎn)生重疊時,行內(nèi)元素邊框、背景和內(nèi)容都在該浮動元素“之上”顯示,若是非浮動塊級元素跟在浮動元素后邊且在定位后產(chǎn)生重疊時,該塊級元素邊框和背景在該浮動元素“之下”顯示,只有內(nèi)容在浮動元素不在浮動元素“之下”顯示。

示例代碼如下:

<div style="width: 600px; height: 500px; border: solid 1px blue; background-color: yellow;">

        <div style="float: left; width: 250px; height: 250px; border: solid 1px Aqua; background-color: gray;

            margin: 10px 0 0 10px;">

            浮動DIV</div>

        <div style="background-color: red; border: solid 1px green; width: 300px; height: 150px;">

            跟在浮動元素后邊的DIV</div>

        <span style="background-color: red; border: solid 1px green; margin: 0 0 0 -50px;">

        跟在浮動元素后邊的span</span>

    </div>

 

效果圖如下:



 

從圖中可以看出來,跟在浮動div后邊的div背景以及邊框被壓在了底下,內(nèi)容卻沒有,span整體都在浮動div之上顯示。

 

不過在ie6這個效果卻很怪異,如圖:



 

浮動元素沒有壓在非浮動div之上,反而把span壓住了。

 

三、多個并列同方向浮動元素高度不一致問題

多個同方向浮動元素若是高度不一致的話,很可能會得到意外的效果,跟你想要的布局差別很大。多個同方向浮動元素一般是按照流式布局,一行滿了則自動換行,也就是類似于以下效果:

 

 

但各個浮動元素高度不一致的話效果很可能出現(xiàn)下邊的情況:

 

 

很意外吧,主要排列到元素7的時候,一行已經(jīng)顯示不下了,所以要換行,但此處換行并不是從行頭開始,而是從元素5那開始,因為元素5比元素6高很多導(dǎo)致。

 

四、子元素全為浮動元素高度自適應(yīng)問題

 

由于元素浮動后脫離了文檔流,所以父元素是無法根據(jù)元素來自適應(yīng)的。解決此問題最常用的辦法由兩種,第一種就是在所有浮動元素后加:

 

<div style="clear:both;height:0px;"></div>

 

第二種辦法,使用萬能clear

 

      .clearfix:after

        {

            visibility: hidden;

            display: block;

            font-size: 0;

            content: ".";

            clear: both;

            height: 0;

        }

       

       

        * html .clearfix

        {

            zoom: 1;

        }

       

       

        *:first-child + html .clearfix

        {

            zoom: 1;

        }

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多