兩欄布局、三欄布局、水平垂直居中(良心整理,歡迎交流)


兩欄布局:

1、float+margin

.block_left{
            float: left;
            width: 200px;  //左邊定寬
            background-color: blue;
}
.block_right{           //右邊自適應
            background-color: red;
            margin-left:200px;
}        

2、定位

.content{
            position: relative;
            width: 100%;
        }     
.block_left{
            position: absolute;
            width: 200px;
            background-color: blue;
}
.block_right{
            position: absolute;
            left: 200px;
            right: 0;
            background-color: red;   
}

3、彈性布局

*{
            margin: 0;
            padding: 0;
        /*這是設置默認的內外邊距。因為瀏覽器標簽自帶的屬性是不統一的,設置為0。為了兼容所有的瀏覽器!*/
}
.flex-container{
            width: 100%;
            height: 300px;
            display: flex;
}
.block_left{
            background-color: blue;
            width: 20%;      //這個可以對其進行控制,左右占比
            flex:1 0 auto;   //設置其可擴展,不可壓縮,且大小自適應
}
.block_right{
            background-color: red;
            width: 80%;
            flex:1 0 auto;
}

三欄布局:

1、float:left和float:right

優點:簡單    缺點:中間部分最后加載,用戶體驗感不好

<style>
.left{ background-color: red; float: left; width: 100px; } .right{ background-color: red; width: 100px; float: right;
} .content{ background-color: green; margin-right: 100px; margin-left: 95px; }
</style> <body> <!-- 必須要把類為content的div元素放在浮動元素之后,因為浮動元素不可以高於任何在源文檔(html代碼)之前的塊元素或浮動元素,所以如果按照左中右的順序擺放的話會出現以下情況-->

<div id="container"></div> <div class="left">1</div> <div class="right">3</div> <div class="content">2</div> </body>

2、BFC:即:在第一種方法的基礎上,給content部分加上overflow:hidden來使其形成BFC,利用BFC不會與浮動元素重疊的規則

3、聖杯布局

<style>
        *{
            padding: 0;
            margin: 0;
        }
        #container{
            /* 讓左右兩欄占據container左右兩邊的填充 */
            padding-left:100px;
            padding-right: 100px; 
            background-color: blue;
        }
        .left{
            background-color: red;
            float: left;
            position:relative;
            width: 100px;
            height: 100px;
            /* 這個100%是content部分相當於container的,就是指左列要越過中間列的寬度,跑到它前面去 */
            /* 浮動元素的margin值是相當於上一個相鄰的浮動元素來計算的 */
            margin-left:-100%;   
            left:-100px;
        }
        .right{
            background-color: red;
            width: 100px;
            height: 100px;
            float: left;
            position:relative;
            /* 此處的margin-left是相對於其相鄰元素left的 */
            margin-left: -100px;
            right: -100px;
        }
        .content{
            float: left;
            background-color:yellow;
            width:100%;
            height: 100px;
        }
    </style>
</head>
<body>
    <!-- content部分先渲染 -->
<div id="container">
    <div class="content">2aaasadsfdff</div>
    <div class="left">1</div>
    <div class="right">3</div>
</div>  

4、雙飛翼布局

步驟幾乎與聖杯布局一致,只是在中間部分多加了一層,通過對其設置margin值來消除遮擋

5、彈性布局

#container{
      display:flex;
}
.left{
      background-color: red;
      width: 100px;
      height: 100px;
      flex:0 1 auto;
      order:-1;  //渲染是首先渲染content部分,但是布局是要將left模塊放到左邊,order默認為0,所以設置其為-1,就可以位置領先於其它元素
}
.right{ background-color: red; width: 100px; height: 100px; flex:0 1 auto; } .content{ background-color:yellow; flex:1 0 auto; height: 100px; }
</style> <body> <!-- content部分先渲染 --> <div id="container"> <div class="content">2aaasadsfdff</div> <div class="left">1</div> <div class="right">3</div> </div>

6、絕對定位:很簡單,通過對三塊區域設置絕對定位,然后通過left/right值來進行定位,就可以實現三欄布局

.left{
      background-color: red;
      width: 100px;
      height: 100px;
      position:absolute;
      left:0;
} .right{ background-color: red; width: 100px; height: 100px; position: absolute; right: 0; } .content{ background-color:yellow; position: absolute; height: 100px; left:100px; right: 100px; }

水平垂直居中:

一、文字水平垂直居中

1、單行文字:

text-align:center/*水平居中*/

line-height20px/*行距設為與div高度一致*/
將行距設為和div一致,即使得每段文字都具有和div一樣的高度,即:讓文字利用整個div空間,有點像margin:auto
2、多行文字
text-align:center;
display:table-cell;vertical-align:middle;

 還可以用彈性布局 : display:flex;justify-content:center;align-item:center

二、塊狀水平垂直居中:

方法1:對塊元素絕對定位,然后將其位置通過margin-left和margin-top負值各拉回自身的一半

方法2:利用margin:auto

方法3:通過彈性盒(一定要保證父級元素有高度)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM