在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ 關(guān)于flex布局的問題

關(guān)于flex布局的問題

求問大神
<div class="box">

<span class="item"></span>
<span class="item"></span>

</div>

.box {

        display: flex;
        justify-content: space-between;
    }

這樣設(shè)置,兩個span都在box兩邊

<div class="box">

<div class="column">
    <span class="item"></span>
    <span class="item"></span>
</div>

</div>

.column {

        display: flex;
        flex-basis: 100%;
        justify-content: space-between;
    }

同樣都是設(shè)置容器里項目的對齊方式,但是第二種兩個容器嵌套在一起,內(nèi)部的容器的項目為什么要設(shè)置flex-basis,兩個span才能在容器兩邊

回答
編輯回答
安淺陌

首先說下這不是加不加flex-basis的問題,至于原因,看我的說明。

我按照你說的寫了個不加flex-basis的版本,為了便于查看,加了背景色和字

<!DOCTYPE html>
<html lang="en">
<head>
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
    <title>關(guān)于flex的問題</title>
</head>
<style>
    span {
        background: #e94258;
    }

    .box {

        display: flex;
        justify-content: space-between;
    }
    .column {
        background: #000;

        display: flex;
        justify-content: space-between;
    }
</style>
<body>
<div class="box">

    <span class="item">c</span>
    <span class="item">c</span>
</div>
<div class="box">

    <div class="column">
        <span class="item">c</span>
        <span class="item">c</span>
    </div>
</div>
</body>
</html>

顯示的結(jié)果:image-20180605125635079

如你所說,挨在一起,但是你有沒有發(fā)現(xiàn)一個問題,我明明給column寫了個黑色的背景色,怎么第二行沒有背景色?問題就是出在這。

按理說column是個div,應(yīng)該占滿一行的,但是由于box設(shè)置成了flex,所以column不再是塊元素,他的寬度只隨內(nèi)容變化,而column的內(nèi)容只有兩個span,所以column的寬度就變成了兩個span的寬度之和。

實際上這時第二行兩個span依舊是和上面一行的兩個span一樣,都是排列在column的兩邊,但是由于column的寬度就等于這兩個span的寬度之和,所以看起來就像是這兩個span變成了從左到右排列,而沒有排列在兩邊。

結(jié)論是要解決這個問題,只要想辦法讓column的寬度變成和第一行的box一樣,那第二行的兩個span的排列就會看起來和第一行的一樣了。你的flex-basis:100%就是達到了這個效果。還有別的方法可以解決的,這個你自己摸索吧。原理才是最重要的。

2018年8月11日 04:23