CSS佈局:如何實現居中佈局?

1. 父級容器設置成表格,子級設爲行內元素。

適合子級內容爲文本展現。 css

圖片描述

<!-- css -->
<style>
    #parent {
        height: 200px;
        width: 200px;
        border: 1px solid red;

        display: table-cell;    /* 轉變成表格 */
        text-align: center;     /* 水平 */
        vertical-align: middle; /* 垂直 */
    }
    #child {
        background-color: blue;
        color: white;

        display: inline;        /* 子元素設置爲行內或行內塊 */
    }
</style>

<!-- html -->
<div id="parent">
    <div id="child">內容</div>
</div>

2. 父級容器設置相對定位,子級設置絕對定位後經過外邊距居中。

圖片描述

<!-- css -->
<style>
    #parent {
        height: 200px;
        width: 200px;
        border: 1px solid red;

        position: relative;     /* 設置相對定位 */
    }
    #child {
        height: 50px;
        width: 50px;
        color: white;
        background-color: blue;

        /* 絕對定位,4 個方向設置爲 0 後,margin 設爲 auto */
        position: absolute;
        left: 0;
        top: 0;
        right: 0;
        bottom: 0;
        margin: auto;
    }
</style>

<!-- html -->
<div id="parent">
    <div id="child"></div>
</div>

3. 父級容器設置爲彈性盒,子級設置外邊距。

圖片描述

<!-- css -->
<style>
    #parent {
        height: 200px;
        width: 200px;
        border: 1px solid red;

        display: flex;          /* 父元素轉換爲彈性盒 */
        display: -webkit-flex;  /* Safari */
    }
    #child {
        height: 50px;
        width: 50px;
        background-color: blue;

        margin: auto;
    }
</style>

<!-- html -->
<div id="parent">
    <div id="child"></div>
</div>

4. 父級容器設置相對定位,子級設置絕對定位,左邊距和上邊距設置負一半寬度。

適合子級的寬高固定的狀況。 html

圖片描述

<!-- css -->
<style>
    #parent {
        height: 200px;
        width: 200px;
        border: 1px solid red;

        position: relative;     /* 設置相對定位 */
    }
    #child {                      /* 子元素已知自身寬高的狀況下 */
        background-color: blue;

        width: 50px;
        height: 50px;
        margin-top: -25px;
        margin-left: -25px;
        position: absolute;
        left: 50%;
        top: 50%;
    }
</style>

<!-- html -->
<div id="parent">
    <div id="child"></div>
</div>

5. 父級容器設置相對定位,子級設置絕對定位,經過變形屬性設置水平和垂直方向負一半。

適合子級的寬高不固定的狀況。web

圖片描述

<!-- css -->
<style>
    #parent {
        height: 200px;
        width: 200px;
        border: 1px solid red;

        position: relative;     /* 設置相對定位 */
    }
    #child {                      /* 子元素未知本身的寬高,使用 transform 的 translate */
        border: 1px solid blue;

        position: absolute;
        top: 50%;
        left: 50%;
        -webkit-transform: translate(-50%,-50%);
        -ms-transform: translate(-50%,-50%);
        -o-transform: translate(-50%,-50%);
        transform: translate(-50%,-50%);
    }
</style>

<!-- html -->
<div id="parent">
    <div id="child">
        <div id="content">
            內容1
            <br/>
            內容2
        </div>
    </div>
</div>

6. 父級設置爲彈性盒,設置對齊屬性。

圖片描述

<!-- css -->
<style>
    #parent {
        height: 200px;
        width: 200px;
        border: 1px solid red;

        display: flex;          /* 父元素轉換爲彈性盒 */
        display: -webkit-flex;  /* Safari */
        justify-content: center;/* 水平 */
        align-items: center;    /* 垂直 */
    }
    #child {
        height: 50px;
        width: 50px;
        background-color: blue;
    }
</style>

<!-- html -->
<div id="parent">
    <div id="child"></div>
</div>
相關文章
相關標籤/搜索