明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

頁(yè)面的布局方式之清除浮動(dòng)

[摘要]這次給大家?guī)?lái)網(wǎng)頁(yè)的布局方式之清除浮動(dòng), 清除浮動(dòng)的注意事項(xiàng)有哪些,下面就是實(shí)戰(zhàn)案例,一起來(lái)看一下。盒子的高度問(wèn)題1.標(biāo)準(zhǔn)流中盒子的高度可以被內(nèi)容高度撐起來(lái);2.浮動(dòng)流中浮動(dòng)的內(nèi)容不能撐起盒子的高度;為什么要清楚浮動(dòng)?相鄰的盒子之間,如果前面的盒子沒(méi)有高度,那么后面盒子中的浮動(dòng)元素就會(huì)去找前面盒子...
這次給大家?guī)?lái)網(wǎng)頁(yè)的布局方式之清除浮動(dòng), 清除浮動(dòng)的注意事項(xiàng)有哪些,下面就是實(shí)戰(zhàn)案例,一起來(lái)看一下。

盒子的高度問(wèn)題

1.標(biāo)準(zhǔn)流中盒子的高度可以被內(nèi)容高度撐起來(lái);
2.浮動(dòng)流中浮動(dòng)的內(nèi)容不能撐起盒子的高度;

為什么要清楚浮動(dòng)?

相鄰的盒子之間,如果前面的盒子沒(méi)有高度,那么后面盒子中的浮動(dòng)元素就會(huì)去找前面盒子中的浮動(dòng)元素,這樣會(huì)導(dǎo)致界面混亂,所以需要清除浮動(dòng);

清除浮動(dòng)方式一:

解決方案:

給前面一個(gè)父元素設(shè)置高度

注意點(diǎn):

在企業(yè)開(kāi)發(fā)中, 我們能不寫(xiě)高度就不寫(xiě)高度, 所以這種方式用得很少;

CSS:

   <style>
        *{
            margin: 0;
            padding: 0;
        }
        .box1{
            height: 20px;  //給前面盒子設(shè)置高度
            background-color: red;
        }
        .box2{
            background-color: green;
        }
        .box1 p{
            width: 100px;
            background-color: blue;
        }
        .box2 p{
            width: 100px;
            background-color: yellow;
        }
        p{
            float: left;
        }    </style>

body:

<div class="box1">
    <p>我是文字1</p>
    <p>我是文字1</p>
    <p>我是文字1</p></div><div class="box2">
    <p>我是文字2</p>
    <p>我是文字2</p>
    <p>我是文字2</p>
</div>

清除浮動(dòng)方式二:

解決方案:

給后面的盒子添加clear:both;屬性

clear屬性取值:

none: 默認(rèn)取值, 按照浮動(dòng)元素的排序規(guī)則來(lái)排序(左浮動(dòng)找左浮動(dòng), 右浮動(dòng)找右浮動(dòng))
left: 不要找前面的左浮動(dòng)元素(也就是:不要和前面的左浮動(dòng)元素顯示在一行)
right: 不要找前面的右浮動(dòng)元素
both: 不要找前面的左浮動(dòng)元素和右浮動(dòng)元素

注意點(diǎn):

當(dāng)我們給某個(gè)元素添加clear屬性之后, 那么這個(gè)屬性的margin屬性就會(huì)失效;所以不推薦使用

CSS:

<style>
        *{
            margin: 0;
            padding: 0;
        }
        body{
            border: 1px solid #000;
        }
        .box1{
            background-color: red;
        }
        .box2{
            background-color: green;
            clear: both; //給后面的盒子添加clear:both;屬性
            margin-top: 28px;
        }
        .box1 p{
            width: 100px;
            background-color: blue;
        }
        .box2 p{
            width: 100px;
            background-color: yellow;
        }
        p{
            float: left;
        }    </style>

清除浮動(dòng)方式三:

解決方案:

外墻法:在兩個(gè)有浮動(dòng)子元素的盒子之間添加一個(gè)額外的塊級(jí)元素;并且設(shè)置clear: both;屬性;

注意點(diǎn):

外墻法它可以讓第二個(gè)盒子使用margin-top屬性,
外墻法不可以讓第一個(gè)盒子使用margin-bottom屬性,
不過(guò)可以通過(guò)設(shè)置額外標(biāo)簽的高度來(lái)實(shí)現(xiàn)margin效果;
搜狐中大量使用了這個(gè)技術(shù),但是由于需要添加大量無(wú)意義的標(biāo)簽,所以不推薦使用;

CSS:

<style>
        *{
            margin: 0;
            padding: 0;
        }
        .box1{
            background-color: red;            /*margin-bottom: 10px;*/ //外墻法不可以讓第一個(gè)盒子使用margin-bottom屬性,
        }
        .box2{
            background-color: green;            /*margin-top: 10px;*/  //外墻法它可以讓第二個(gè)盒子使用margin-top屬性,
        }
        .box1 p{
            width: 100px;
            background-color: blue;
        }
        .box2 p{
            width: 100px;
            background-color: yellow;
        }
        p{
            float: left;
        }
        .wall{
            clear: both; //設(shè)置clear: both;屬性;
        }
        .h20{
            height: 20px; //設(shè)置額外標(biāo)簽的高度來(lái)實(shí)現(xiàn)margin效果;
            background-color: skyblue;
        }
    </style>
<div class="box1">
    <p>我是文字1</p>
    <p>我是文字1</p>
    <p>我是文字1</p></div><div class="wall h20"></div> //外墻法:在兩個(gè)有浮動(dòng)子元素的盒子之間添加一個(gè)額外的塊級(jí)元素;<div class="box2">
    <p>我是文字2</p>
    <p>我是文字2</p>
    <p>我是文字2</p></div>

清除浮動(dòng)方式四:

解決方案:

內(nèi)墻法:
1在第一個(gè)盒子中所有子元素最后添加一個(gè)額外的塊級(jí)元素,
2給這個(gè)額外添加的塊級(jí)元素設(shè)置clear: both;屬性

注意點(diǎn):

內(nèi)墻法它可以讓第二個(gè)盒子使用margin-top屬性
內(nèi)墻法它可以讓第一個(gè)盒子使用margin-bottom屬性

<a>內(nèi)墻法會(huì)自動(dòng)撐起盒子的高度,所以可以直接設(shè)置margin屬性</a>

外墻法和內(nèi)墻法區(qū)別?

外墻法不能撐起第一個(gè)盒子的高度, 而內(nèi)墻法可以撐起第一個(gè)盒子的高度

在企業(yè)開(kāi)發(fā)中<a>不常用隔墻法</a>來(lái)清除浮動(dòng) (隔墻法:外墻法和內(nèi)墻法)

CSS:

   <style>
        *{            margin: 0;            padding: 0;
        }        .box1{            background-color: red;            /*margin-bottom: 10px;*/
        }        .box2{            background-color: green;            /*margin-top: 10px;*/
        }        .box1 p{            width: 100px;            background-color: blue;
        }        .box2 p{            width: 100px;            background-color: yellow;
        }        p{            float: left;
        }        .wall{            clear: both;
        }        .h20{            height: 20px;            background-color: skyblue;
        }    </style></head>
<div class="box1">
    <p>我是文字1</p>
    <p>我是文字1</p>
    <p>我是文字1</p>
    <div class="wall h20"></div> //設(shè)置內(nèi)墻</div><div class="box2">
    <p>我是文字2</p>
    <p>我是文字2</p>
    <p>我是文字2</p></div>

相信看了本文案例你已經(jīng)掌握了方法,更多精彩請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章!

推薦閱讀:

CSS的背景與精靈圖

CSS的顯示模式如何使用

以上就是 網(wǎng)頁(yè)的布局方式之清除浮動(dòng)的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章!


網(wǎng)站建設(shè)是一個(gè)廣義的術(shù)語(yǔ),涵蓋了許多不同的技能和學(xué)科中所使用的生產(chǎn)和維護(hù)的網(wǎng)站。