1. 程式人生 > >CSS佈局(二) 常見佈局

CSS佈局(二) 常見佈局

本文是根據網上資料總結出來的文章

CSS 佈局方式

一列布局

多用於顯示標題展示等;

<div class="main"></div>

.main{
    width: 200px;
    height: 100px;
    background-color: green;
    margin: 0 auto;
}

兩列布局

兩列布局,最常見的就是使用float來實現。float浮動佈局的缺點是浮動後會造成文字環繞等效果,以及需要及時清除浮動。

注意:
1.如何父級元素沒有設定高度,則需要設定overflow:hidden來清除浮動產生的影響
2.對於自己相鄰元素清除浮動產生的影響用:clear:both;

<div class="main">
  <div class="left">left</div>
  <div class="right">right</div>
</div>

.main {
  width: 400px;
  background: red;
  overflow: hidden;
}

.left {
  background: yellow;
  float: left;
}

.right {
  background: green;
  float: left;
}

三列布局

兩側定寬中間自適應,首先設定父級元素的寬度,可以左左右設定浮動。然後中間設定margin調整間距。 也可以都設定成左浮動,設定margin,調整間距。同樣注意清除浮動的影響!

<div class="main">
  <div class="left">left</div>
  <div class="middle">middle</div>
  <div class="right">right</div>
</div>

.main {
  width: 100%;
  background: red;
  overflow: hidden;
}

.left {
  background: yellow;
  float: left;
  width: 100px;
}

.middle {
  background: rosybrown;
  float: left;
  width: calc(100% - 200px);
}

.right {
  background: green;
  float: right;
  width: 100px;
}

或著為父級元素設定relative屬性,再為子元素設定absolute屬性,再分別定位,調間距。

<div class="parent" style="background-color: lightgrey;">
    <div class="left" style="background-color: lightblue;">
        <p>left</p>
    </div>    
    <div class="center" style="background-color: pink;">
        <p>center</p>
        <p>center</p>
    </div>                
    <div class="right"  style="background-color: lightgreen;">
        <p>right</p>
    </div>            
</div>


p{margin: 0;}
.parent{position: relative;height:40px;}
.left,.right,.center{position: absolute;}
.left{left: 0;width:100px;}
.right{right: 0;width: 100px;}
.center{left: 120px; right: 120px;}

混合佈局

在一列布局的基礎上,保留top和foot部分,將中間的main部分改造成兩列或三列布局,小的模組可以再逐級同理劃分。

<div class="top"></div>
<div class="main">
  <div class="left">left</div>
  <div class="right">right</div>
</div>
<div class="footer"></div>

.top{
            height: 100px;
            background: teal;
        }
        .footer{
            height: 100px;
            background: wheat;
        }
        .main{
            width: 100%;
            background: red;
            overflow: hidden;
        }
        .left{
            background: yellow;
            float: left;
            width: 50%;
        }
        .right{
            background: green;
            float: right;
            width: 50%;
        }

等分佈局

<div class="parent">
    <div class="child"></div>
    <div class="child"></div>
    <div class="child"></div>
    <div class="child"></div>
  </div>

 body {
      margin: 0;
    }

    .parent {
      border: 1px solid red;
      overflow: hidden;
      margin-right: -10px;
    }

    .child {
      width: calc(25% - 10px);
      height: 100px;
      background: green;
      float: left;
      margin-right: 10px;
    }