首頁 >web前端 >前端問答 >css3實作多欄佈局有哪幾種方法

css3實作多欄佈局有哪幾種方法

青灯夜游
青灯夜游原創
2022-02-28 13:52:071839瀏覽

css3實現多欄佈局的方法:1.利用float實現多欄佈局;2、利用inline-block盒模型實現多欄佈局;3、利用「display: flex」彈性佈局實現多欄佈局;4、利用「display: table」方式實現多欄佈局。

css3實作多欄佈局有哪幾種方法

本教學操作環境:windows7系統、CSS3&&HTML5版、Dell G3電腦。

css實作多欄佈局的幾種方式

假如把下面的三個div顯示在同一行

<div id="parent">
    <div id="box1">1</div>
    <div id="box2">2</div>
    <div id="box3">3</div>
</div>

css3實作多欄佈局有哪幾種方法

1:float實作多欄佈局

float屬性控制目標HTML元件是否浮動以及如何浮動。設定屬性過後,物件會被當作區塊組件處理。 float的值共有四個:left(向左浮動)、Right(向右浮動)、none(不浮動)、inherit(繼承父元素值),將box1,box2,box3都設定成向左浮動,浮動元素的下一個兄弟元素如果也設定了相同浮動方向,則會緊跟著改元素顯示。

設定了float之後,元素會脫離普通文件流。它們的父元素也不會被撐開,所以#parent的高度此時為0。

    #parent>div{
        border:1px solid black;
        float:left;
        width:200px;
        height:200px;
        text-align: center;
 
    }
   #box1{
       background-color:red;
   }
   #box2{
       background-color:yellow;
   }
    #box3 {
        background-color:blue;
    }

我們也可以這樣,將box1,box2,設定成向左浮動,box3不浮動。由於box1,box2設定了浮動之後脫離了普通文檔流。對box3來說就像前面不存在box1,box2一樣,box3也會顯示在這一行,但會被box1遮擋住。設定box3的 margin-left:400px;可以讓它看起來像是顯示在box1,box2後面。這時候#parent被box3撐開,高度此時為202px。

    #parent>div{
        border:1px solid black;
        width:200px;
        height:200px;
        text-align: center;
 
    }
    #box1{
       float:left;
        background-color:red;
    }
    #box2{
        float:left;
        background-color:yellow;
    }
    #box3 {
        margin-left:400px;
        background-color:blue;
    }

2:inline-block盒模型

inline-block盒模型的元素既不會佔據一行,同時也支援用width、height指定寬度和高度。 display:inline-block 將物件呈現為inline對象,但物件的內容以block物件呈現。之後的內聯物件會被排列在同一行內。通常需要設定vertical-align:top使其頂端對齊。

    #parent>div{
        display:inline-block;
        border:1px solid black;
        width:200px;
        height:200px;
        text-align: center;
    }
    #box1{
        background-color:red;
    }
    #box2{
        background-color:yellow;
    }
    #box3 {
        background-color:blue;
    }

inline-block水平呈現的元素間,換行顯示或空格分隔的情況下會有間距。把空格去掉間隙自然就會消失,這樣就不會顯示間隔。

<div>
    <div>1</div>
<div>2</div>
<div>3</div>
</div>

3:display: flex 彈性佈局

設定#parent容器的 diaplay:flex;父容器相當於一個彈性盒子。裡面的div會依照flex-direction設定的模式排列。 Flex彈性佈局的功能就比較強大了,可以為盒狀模型提供最大的彈性實現複雜的佈局,任何一個容器都可以指定為 Flex 佈局。 flex-direction屬性決定主軸的方向,flex-direction: row;表示在父容器裡橫向排列,flex-direction: column;表示在父容器裡縱向排列​​。

    #parent{
        display: flex;
        flex-direction: row;
    }
    #parent>div{
        border:1px solid black;
        width:200px;
        height:200px;
        text-align: center;
    }
    #box1{
        background-color:red;
    }
    #box2{
        background-color:yellow;
    }
    #box3 {
        background-color:blue;
    }

4:display: table

display:table     設定了該屬性的元素作為區塊級表格來顯示,類似


display:table-cell 設定了該屬性的元素會作為一個表格單元格顯示,類似

可以用這一系列table-row-group、table-header- group、table-footer-group、table-row等以其他標籤實作類似表格的佈局。
#parent{
        display: table;
    }
    #parent>div{
        display:table-cell;
        border:1px solid black;
        width:200px;
        height:200px;
        text-align: center;
    }
    #box1{
        background-color:red;
    }
    #box2{
        background-color:yellow;
    }
    #box3 {
        background-color:blue;
    }

(學習影片分享:css影片教學web前端入門教學

以上是css3實作多欄佈局有哪幾種方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn