成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術(shù)文章
文章詳情頁

詳細(xì)分析css float 屬性以及position:absolute 的區(qū)別

瀏覽:191日期:2022-06-02 11:55:21

1.float 屬性定義元素在哪個(gè)方向浮動(dòng)。以往這個(gè)屬性總應(yīng)用于圖像,使文本圍繞在圖像周圍,不過在 CSS 中,任何元素都可以浮動(dòng)。浮動(dòng)元素會(huì)生成一個(gè)塊級(jí)框,而不論它本身是何種元素。div一個(gè)典型的塊級(jí)元素,會(huì)單獨(dú)占據(jù)一行。

先看看最基本的塊級(jí)元素如何排列的。html代碼,以下樣式都是基于此。

復(fù)制代碼 代碼如下:
<div>
        <div>
        框框1
        </div>
        <div>
        框框2
        </div>
        <div>
        框框3
        </div>
</div>

css代碼:

復(fù)制代碼 代碼如下:
.boxBg{
    margin: 0 auto;
    width:500px;
    height:200px;
    border:2px solid #ccc
    }
    .box1{
    width:100px;
    height:50px;
    background-color:red
    }
    .box2{
    width:100px;
    height:50px;
    background-color:blue
    }
    .box3{
    width:100px;
    height:50px;
    background-color:green
    }

執(zhí)行結(jié)果:

由于div是塊級(jí)元素,所以框會(huì)以縱向形式排列。在實(shí)際操作中往往需要將框橫向排列。有兩種方式可以實(shí)現(xiàn)。第一種將display:inlin-block;

復(fù)制代碼 代碼如下:
.boxBg{
    margin: 0 auto;
    width:500px;
    height:200px;
    border:2px solid #ccc
    }
    .box1{
    width:100px;
    height:50px;
    background-color:red;
    display:inline-block
    }
    .box2{
    width:100px;
    height:50px;
    background-color:blue;
    display:inline-block
    }
    .box3{
    width:100px;
    height:50px;
    background-color:green;
    display:inline-block
    }

執(zhí)行結(jié)果:

至于中間的縫隙,追溯到本質(zhì)原因是元素之間的空白符引起的,所以在父元素設(shè)置fone-size的大小,可以調(diào)節(jié)空白縫隙的大小。

復(fù)制代碼 代碼如下:
.boxBg{
    margin: 0 auto;
    width:500px;
    height:200px;
    border:2px solid #ccc;
    font-size:34px;
}

將font-size:34px之后,那么縫隙會(huì)變寬。

執(zhí)行結(jié)果:

同理,要去掉縫隙,那么需要將font-size:0;

復(fù)制代碼 代碼如下:
.boxBg{
    margin: 0 auto;
    width:500px;
    height:200px;
    border:2px solid #ccc;
    font-size:0
}

執(zhí)行結(jié)果:

如此便實(shí)現(xiàn)了想要的布局,框里邊的文字也跟著消失了,同樣也證明文字的大小影響縫隙。只需要在子元素里重新設(shè)置就可以了。當(dāng)然今天的重點(diǎn)并不是這個(gè)。同樣的效果float:left;也可以輕松實(shí)現(xiàn)。

復(fù)制代碼 代碼如下:
<style>
    .boxBg{
    margin: 0 auto;
    width:500px;
    height:200px;
    border:2px solid #ccc;
    }
    .box1{
    width:100px;
    height:50px;
    background-color:red;
    float:left
    }
    .box2{
    width:100px;
    height:50px;
    background-color:blue;
    float:left
    }
    .box3{
    width:100px;
    height:50px;
    background-color:green;
    float:left
    }
</style>

執(zhí)行結(jié)果:

元素添加 float之后,此浮動(dòng)元素會(huì)在其碰到父級(jí)元素邊框或者另一個(gè)浮動(dòng)元素邊框,緊鄰其后顯示。例如下邊的例子,在浮動(dòng)元素總寬度大于父級(jí)元素時(shí),換行,換行的時(shí)候遇到前一個(gè)float并在其后顯示

復(fù)制代碼 代碼如下:
<style>
    .boxBg{
    margin: 0 auto;
    width:500px;
    height:200px;
    border:2px solid #ccc;
    }
    .box1{
    width:100px;
    height:100px;
    background-color:red;
    float:left
    }
    .box2{
    width:100px;
    height:50px;
    background-color:blue;
    float:left
    }
    .box3{
    width:400px;
    height:50px;
    background-color:green;
    float:left
    }
</style>

執(zhí)行結(jié)果:

如果使用inline-block,結(jié)果會(huì)是怎樣呢?

復(fù)制代碼 代碼如下:
<style>
    .boxBg{
    margin: 0 auto;
    width:500px;
    height:200px;
    border:2px solid #ccc;
    }
    .box1{
    width:100px;
    height:100px;
    background-color:red;
    display:inline-block
    }
    .box2{
    width:100px;
    height:50px;
    background-color:blue;
    display:inline-block
    }
    .box3{
    width:400px;
    height:50px;
    background-color:green;
    display:inline-block
    }
</style>

執(zhí)行結(jié)果:

此時(shí)框3是另起一行而不是跟在框1之后,(1,2之間的縫隙這里就不說了) 這也是一個(gè)使用inline-block和float的判斷,如果模塊寬度不一樣使用float排版可能會(huì)導(dǎo)致跟預(yù)想結(jié)果不一樣,所以在寬高不變的情況下使用float是極好的,如果不一致的話需要看具體的布局,使用恰當(dāng)?shù)膶傩浴?/p>

以下貼代碼,只貼修改的部分,其他不變,結(jié)構(gòu)不變。

如果去掉box3的float:left會(huì)是什么結(jié)果?按照理解,浮動(dòng)元素不占據(jù)空間,也就是框框3會(huì)無視框框1,框框2直接緊鄰父元素的邊框顯示,也就是框框1會(huì)蓋住框框3?那結(jié)果呢?

復(fù)制代碼 代碼如下:
.box3{
    width:100px;
    height:50px;
    background-color:green;
}

執(zhí)行結(jié)果:

為何框3的文字會(huì)出現(xiàn)在下邊而不是被框1覆蓋?接著看代碼,看圖

復(fù)制代碼 代碼如下:
.box3{
    height:50px;
    background-color:green;
}

執(zhí)行結(jié)果:

看出不一樣了沒?是的。box3沒有定義width;去掉了width,不定義寬度的情況下默認(rèn)寬度就是父元素的寬度,也就是說此時(shí)width:500px;浮動(dòng)元素覆蓋非浮動(dòng)元素,也就是框3前邊200px的寬度被浮動(dòng)元素覆蓋了,之所以文字沒有被覆蓋而且文字被浮動(dòng)元素?cái)D在200px之后的位置,原因呢?

  浮動(dòng)元素不會(huì)占據(jù)塊的空間,所以框三就是100%的父容器寬度 500px,但是浮動(dòng)元素會(huì)占據(jù)另外的空間,也就是行框空間,通俗的講就是文本所占的空間。

這也是圖片float之后,文本會(huì)自動(dòng)環(huán)繞圖片的原因。浮動(dòng)元素不占據(jù)塊級(jí)空間,但會(huì)影響塊級(jí)元素之內(nèi)的文字以及內(nèi)聯(lián)元素。

如此的話如果想要三個(gè)框?qū)挾纫粯樱敲粗恍枰獙⒖蛉齱idth:300px;

復(fù)制代碼 代碼如下:
.box3{
    width:300px;
    height:50px;
    background-color:green;
}

執(zhí)行結(jié)果:

到這里基本的浮動(dòng)說完了,那就要說說問題了,浮動(dòng)雖然好用,但是也會(huì)在實(shí)際中出現(xiàn)很多問題。例如:

<style>
    .boxBg{
    margin: 0 auto;
    position:relative;
    width:500px;
    border:2px solid #ccc;
    background-color:#ccd;
    }
    .box1{
    float:left;
    width:100px;
    height:50px;
    background-color:red;
    }
    .box2{
    float:left;
    width:100px;
    height:50px;
    background-color:blue;
    }
    .box3{
    float:left;
    width:100px;
    height:50px;
    background-color:green;
    }
</style>

執(zhí)行結(jié)果:

很常見的問題,正常情況下。應(yīng)該灰色的背景會(huì)跟框一樣高,可事實(shí)總是不會(huì)盡如人意 :)

這種情況產(chǎn)生的原因,都知道是因?yàn)楦?dòng)造成的,是的,是浮動(dòng),很多地方有說浮動(dòng)元素會(huì)脫離普通流,所以普通元素可以當(dāng)浮動(dòng)元素不存在,所以這里就不會(huì)撐開背景了,但是認(rèn)真看的同學(xué),一定會(huì)記得上邊有提到浮動(dòng)元素不會(huì)影響塊框,但是會(huì)影響行框,也就是文字或內(nèi)聯(lián)元素,不管是塊級(jí)元素還是內(nèi)聯(lián)元素都屬于普通流,如果浮動(dòng)元素脫離普通流又為何會(huì)影響行框?其實(shí)我覺得不必要糾結(jié)于這些概念性的東西。按照我的理解浮動(dòng)元素就是跟塊級(jí)元素不在一個(gè)水平空間,跟文字內(nèi)聯(lián)元素在一個(gè)空間,所以這里邊框就相當(dāng)于在背景之上,所以不會(huì)影響背景元素,平常所說的清除浮動(dòng),并不是說把浮動(dòng)元素的float屬性去掉,而是清除其周圍的浮動(dòng)元素,使其自身周圍沒有浮動(dòng)元素,所以如果想讓框三到第二行,不能在框2里邊用clear:right;而是需要在框3里邊使用clear:left;

復(fù)制代碼 代碼如下:
.box3{
    float:left;
    width:100px;
    height:50px;
    background-color:green;
    clear:left
    }

執(zhí)行結(jié)果:

ok!理解了這個(gè),下來再說說如何使背景和框等高,第一種:最直接的辦法就是直接設(shè)置背景高度和框相等就Ok了,當(dāng)然這個(gè)不是重點(diǎn),下面來說說清除浮動(dòng)。首先先看看例子:

復(fù)制代碼 代碼如下:
<!DOCtype>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
      <style>
    .boxBg{
    margin: 0 auto;
    position:relative;
    width:500px;
    border:2px solid #ccc;
    background-color:#ccd;
    }
    .box1{
    float:left;
    width:100px;
    height:50px;
    background-color:red;
    }
    .box2{
    float:left;
    width:100px;
    height:50px;
    background-color:blue;
    }
    .box3{
    float:left;
    width:100px;
    height:50px;
    background-color:green;
    }
    .clear{
    width:100px;
    height:50px;
    }
</style>
</head>
<body>
    <div>
        <div>
        框框1
        </div>
        <div>
        框框2
        </div>
        <div>
        框框3
        </div>
        <div></div>
    </div>
</body>
</html>

執(zhí)行結(jié)果:

以上結(jié)果實(shí)現(xiàn)了結(jié)果,很明顯是直接添加了一個(gè)高度相等的空元素,因?yàn)榇嗽貨]有浮動(dòng),所以是跟背景一樣,因此背景被撐開了。其實(shí)是用清除浮動(dòng)的原理跟這個(gè)是一樣的,也是想辦法撐開背景;以上去掉clear的寬,高,加上clear屬性

復(fù)制代碼 代碼如下:
.clear{
    clear:left;
    }

執(zhí)行結(jié)果:

這個(gè)可能還看不清楚,給clear框里邊加幾個(gè)字試試看

執(zhí)行結(jié)果:


因?yàn)閏lear用了clear:left綜上所述,clear左邊不能有浮動(dòng)元素,所以它必須另起一行顯示。如此便看到圖上的結(jié)果,其實(shí)還是用一個(gè)元素?fù)伍_的背景。當(dāng)然還有其他方法實(shí)現(xiàn),這里主要是講清楚浮動(dòng)就好了:)

標(biāo)簽: CSS HTML
相關(guān)文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
午夜在线观看免费一区| 日韩欧美成人一区二区| 国产精品v一区二区三区| 久久综合国产精品| 亚洲三级影院| 精品亚洲porn| 中文字幕日韩av资源站| 久久久噜噜噜久久狠狠50岁| 国产精品一区在线观看乱码 | 久久av资源网| 中文字幕第一区综合| 色婷婷综合视频在线观看| av在线综合网| 一区二区久久久久久| 91精品国产综合久久福利| 亚洲精品看片| 色婷婷av一区| 精品少妇一区二区三区| 欧美亚洲自拍偷拍| 国内激情久久| 亚洲日本精品国产第一区| 久久综合伊人| 欧美精品一区二区三| 欧美日韩一级二级三级| 午夜影院日韩| 欧美一区二区三区四区高清| 国产欧美日本一区二区三区| 日韩一区二区三区观看| 99国产欧美另类久久久精品| 欧美 日韩 国产精品免费观看| 在线日韩一区二区| 亚洲天堂福利av| av在线免费不卡| 国产亚洲一区二区在线观看| 秋霞av亚洲一区二区三| 99久久精品情趣| 久久精品视频在线看| 亚洲午夜91| 精品福利视频一区二区三区| 久久久噜噜噜久噜久久综合| 亚洲精品日韩久久| 日韩视频永久免费| 亚洲免费观看高清完整版在线观看 | 激情丁香综合五月| 一区二区三区四区蜜桃| 国产在线看一区| 在线综合视频| 亚洲欧美日韩国产中文在线| 在线看片一区| 国产日本欧美一区二区| 欧美日韩亚洲一区三区| 欧美大片在线观看| 欧美一区国产一区| 亚洲激情中文1区| 狠狠色噜噜狠狠色综合久| 亚洲免费av观看| 91成人免费在线| 一区二区三区产品免费精品久久75| 性8sex亚洲区入口| 国产一区视频网站| 欧美日韩一区二区三区不卡 | 亚洲综合首页| 中文字幕一区在线观看视频| 夜久久久久久| 久久精品99久久久| 久久精品欧美一区二区三区麻豆 | 成人一区在线观看| 欧美日韩在线综合| 国产91精品在线观看| 欧美女孩性生活视频| 蜜桃av噜噜一区| 在线一区二区三区四区五区| 国产成人免费视| 91精品免费观看| 国产综合久久久久久久久久久久| 精品国产乱码久久| 亚洲一区二区精品在线观看| 国产精品资源站在线| 中文字幕日韩精品一区| 欧美性一二三区| 欧美人成网站| 欧美激情在线观看视频免费| 国产午夜精品在线| 亚洲综合色丁香婷婷六月图片| 亚洲一级二级| 欧美aⅴ一区二区三区视频| 久久看人人爽人人| 久久综合九色99| 色综合色综合色综合色综合色综合| 久久久久亚洲综合| 亚洲一区二区精品在线观看| 国产精品一区二区在线观看不卡| 亚洲色图欧美在线| 欧美先锋影音| 国产精品久久久久aaaa樱花| 丝袜美腿亚洲一区二区图片| 国产一区欧美日韩| 欧美电影一区二区| 国产成人在线影院 | 国产精品日产欧美久久久久| 亚洲视频一区| 另类人妖一区二区av| 国产精品久久久久久久久久久免费看 | 香蕉精品999视频一区二区| 亚洲电影第三页| 国产不卡免费视频| 欧美一级专区免费大片| 99久久免费国产| 亚洲人成7777| 欧洲精品中文字幕| 91在线观看高清| 在线影视一区二区三区| 久久精品国产秦先生| 精品国产乱码久久久久久牛牛 | 国产成人午夜精品影院观看视频| 精品国产免费一区二区三区四区| 国产精品v欧美精品v日韩| 亚洲成人免费av| 欧美成人欧美edvon| 精品91免费| 国产一区二区三区蝌蚪| 国产精品国产a| 欧美日韩一区三区| 国内精品久久国产| 国产自产高清不卡| 综合久久给合久久狠狠狠97色 | 成人免费小视频| 在线国产亚洲欧美| 欧美日韩精品免费观看视频完整| 午夜久久久久久久久久一区二区| 972aa.com艺术欧美| 亚洲国产电影在线观看| 91久久人澡人人添人人爽欧美| 99国内精品久久| 奇米综合一区二区三区精品视频| 精品国产乱码久久久久久影片| 久久久噜噜噜久久狠狠50岁| 91免费视频大全| 男女男精品视频| 国产精品成人一区二区三区夜夜夜| 在线观看成人免费视频| 欧美日韩一区二区三区在线观看免| 青青草一区二区三区| 自拍偷拍国产亚洲| 日韩一区二区三区免费观看 | 亚洲一二区在线| 成人免费黄色在线| 午夜成人在线视频| 中文字幕第一区第二区| 91精品国产综合久久香蕉麻豆| 国产农村妇女精品一二区| 99视频精品全部免费在线| 蜜桃在线一区二区三区| 亚洲最大色网站| 国产精品伦理一区二区| 日韩免费视频一区二区| 欧美亚洲综合在线| 西西人体一区二区| 亚洲国产精选| 国产在线精品二区| 成人性视频免费网站| 久久99精品国产麻豆不卡| 一区二区成人在线视频| 国产精品嫩草影院av蜜臀| 欧美精品一区二区蜜臀亚洲| 日韩一区二区三区电影| 欧美最猛黑人xxxxx猛交| 午夜在线一区| 国产日韩一区欧美| 亚洲午夜精品久久久久久浪潮| 成人精品视频网站| 蜜桃一区二区三区在线观看| 亚洲国产日韩综合久久精品| 久久尤物视频| 亚洲美女网站| 青青草成人在线观看| 日韩码欧中文字| 国产精品久久久久永久免费观看 | 亚洲欧美一区二区在线观看| 久久久久国产一区二区三区四区 | 亚洲综合男人的天堂| 亚洲丝袜另类动漫二区| 亚洲人成亚洲人成在线观看图片 | 久久精品国产久精国产爱| 免费观看30秒视频久久| 免费在线观看成人| 美女被吸乳得到大胸91| 精品一区二区成人精品| 精品一区二区免费视频| 久草这里只有精品视频| 国产激情一区二区三区桃花岛亚洲| 国产精品1区二区.| 你懂的国产精品| 亚洲激情不卡| 国产精品一区二区欧美| 久久精品成人一区二区三区蜜臀| 蜜臀av性久久久久蜜臀av麻豆| 三级久久三级久久| 玖玖九九国产精品| 国产91精品一区二区麻豆网站|