1. 程式人生 > >css盒子

css盒子

項目 body 出了 -i 例子 con radius sha tom

1.盒子模型的內容包括:content,padding,border,margin

2.盒子模型分類:

    標準盒:正常盒,怪異盒

    伸縮盒:新,舊

  內邊距:padding

    1.內邊距在content外,邊框內

    padding    設置所有邊距

    padding-bottom  設置底邊距

    padding-left    設置左邊距

    padding-right   設置右邊距

    padding-top    設置上邊距

  添加內邊距的時候,只需要設置padding,不需要改變content大小,padding會自動撐開。

  邊框:border

    border-width    邊框寬度

    border-style    邊框樣式

    border-color    邊框顏色

    border-radius    設置圓角邊框

    box-shadow    設置對象陰影

    border-image   邊框背景圖片

  外邊距:margin

    1.圍繞在內容邊框的區域就是外邊距,外邊距默認為透明區域

    2.外邊距接受任何長度單位,百分數值

    margin      設置所有邊距

    margin-bottom  設置底邊距

    margin-left    設置左邊距

    margin-right   設置右邊距

    margin-top    設置上邊距

    註意:外邊距合並

3.標準盒子模型

  <div class="a">

    <div class="b">

    </div>

  </div>

4.怪異盒子模型

  box-sizing:border-box; 固定了盒子的大小,只在盒子內部改變值。

5.css伸縮盒子(舊)

  -1.css3引入了一種新的布局模式-Flexbox布局,即伸縮布局盒模型(Flexible Box),用來提供一個更加有效的方式制定,調整和分布一個容器裏項目布局,

即使它們的大小是未知或者動態的。

  -2.Flexbox布局可以輕松的實現屏幕和瀏覽器窗口大小發生變化時,保持元素的相對位置和大小不變。

  -3.屬性

    box-orient    伸縮盒對象的子元素的排列方式

    box-pack     水平居中

    box-align     垂直居中

    box-flex     伸縮盒對象的子元素如何分配其剩余空間

    box-direction   伸縮盒對象的子元素的排列順序是否反轉

例子如下:

html
<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <link rel="stylesheet" href="styleCss.css" type="text/css">
</head>
<body>
    <div class="container">
        <div class="one">d1</div>
        <div class="two">d2</div>
        <div class="three">d3</div>
    </div>
</body>
</html>



css
.one{
    width: 100px;
    height: 100px;
    background-color: blue;
    -webkit-box-flex: 1;
}
.two{
    width: 100px;
    height: 100px;
    background-color: pink;
    -webkit-box-flex: 1;
}
.three{
    width: 100px;
    height: 100px;
    background-color: green;
    -webkit-box-flex: 1;
}
.container{
    width: 600px;
    height: 600px;
    background-color: dimgrey;
    display: -webkit-box;   /*變成盒子*/
    -webkit-box-orient: vertical;
    -webkit-box-pack: center;
    -webkit-box-align: center;
    -webkit-box-direction: reverse;
}


6.css伸縮盒模型(新)

  屬性

  flex      復合屬性,設置伸縮盒對象的子元素如何分配空間

  flex-grow   彈性盒的擴展比率,按比例平均分配

  flex-flow    復合屬性,設置伸縮盒對象的子元素排列方式

  flex-direction  伸縮盒對象的子元素在父容器中的位置

  flex-wrap   設置伸縮盒對象的子元素超出父容器時是否換行

    3個div 每個寬度200px,父容器為300px,超出了300px,但是三個div每個都會變成100px,這時需要設置flex-flow:wrap;(即超過部分換行,div會變成3行顯示)

  order     設置伸縮盒對象的子元素出現的順序

  

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style>
        .one{
            width: 100px;
            height: 100px;
            background-color: blue;
            -webkit-flex-grow: 1;
            /*第一個div 第三個顯示*/
            -webkit-order: 3;
        }
        .two{
            width: 100px;
            height: 100px;
            background-color: pink;
            -webkit-flex-grow: 1;
            /*第二個div 第一個顯示*/
            -webkit-order: 1;
        }
        .three{
            width: 100px;
            height: 100px;
            background-color: green;
            -webkit-flex-grow: 1;
            /*第三個div 第二個顯示*/
            -webkit-order: 2;
        }
        .container{
            width: 600px;
            height: 600px;
            background-color: dimgrey;
            /*變成盒子*/
            display: -webkit-flex;
            -webkit-flex-direction: column;
            /*超出父容器時換行*/
            -webkit-flex-flow: wrap;

        }
    </style>
</head>
<body>
    <div class="container">
        <div class="one">d1</div>
        <div class="two">d2</div>
        <div class="three">d3</div>
    </div>
</body>
</html>

css盒子