css實現居中

LJTin發表於2018-11-19

1.用inline-block和vertical-align來實現居中:這種方法適合於未知寬度高度的情況下。

<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
    <style>
        #container{
            text-align: center;
            height: 400px;
            background: #4dc71f;
        }
        #container:before{
            content: "";
            height: 100%;
            display: inline-block;
            vertical-align: middle;
            margin-right: -0.25em;
        }
        #center-div{
            display: inline-block;
            vertical-align: middle;
            background: #2aabd2;
        }
    </style>
</head>
<body>
    <div id="container">
        <div id="center-div">
            xxx
        </div>
    </div>
</body>
</html>
複製程式碼

2.用相對絕對定位和負邊距實現上下左右居中:高度和寬度已知

首先相對父元素top,left定位在50%的位置,這時候只是圖片左上角居中,而中心點還沒居中,加上margin: -100px 0 0 -100px;利用負邊距把圖片的中心點位於父元素的中心點,從而實現垂直水平居中

<html lang="en">
<head>
    <meta charset="utf-8">
    <title>test</title>
    <style>
        .div2{
            height: 600px;
            width: 600px;
            position: relative;
            border: 2px solid #000;
        }
        .img2{
            height: 200px;
            width: 200px;
            position: relative;
            top: 50%;
            left: 50%;
            margin: -100px 0 0 -100px;
        }
    </style>
</head>
<body>
    <div class="div2">
        <img class="img2" src="images/hongbao.png">
    </div>
</body>
</html>
複製程式碼

3.利用絕對定位來實現居中:適合高度,寬度已知的情況。

<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        #container{
            text-align: center;
            height: 400px;
            background: #4dc71f;
            position: relative;
        }
        #center-div{
            position: absolute;
            margin: auto;
            top: 0;
            right: 0;
            left:0;
            bottom: 0;
            width: 200px;
            height: 200px;
            background: #2b669a;
        }
    </style>
</head>
<body>
    <div id="container">
        <div id="center-div">
            xxx
        </div>
    </div>
</body>
</html>
複製程式碼

4.使用table-cell,inline-block實現水平垂直居中:適合高度寬度未知的情況

<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        #container{
            display: table-cell;
            text-align: center;
            vertical-align: middle;
            height: 300px;
            background: #ccc;
        }
        #center-div{
            display: inline-block;
        }
    </style>
</head>
<body>
    <div id="container">
        <div id="center-div">
            xxx
        </div>
    </div>
</body>
</html>
複製程式碼

5.使用css3中的transform來時實現水平垂直居中:適合高度寬度未知的情況

<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        #container{
         position: relative;
            height: 200px;
            background: #333;
        }
        #center-div{
            position: absolute;
            top:50%;
            left: 50%;
            transform: translate(-50%,-50%);
        }
    </style>
</head>
<body>
    <div id="container">
        <div id="center-div">
            xxx
        </div>
    </div>
</body>
</html>
複製程式碼

6.使用Flexbox來實現水平垂直居中;適合寬度高度未知情況,但是要注意相容性

<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        #p_2{
            display: flex;
            justify-content: center;
            align-items: center;
            width: 200px;
            height: 200px;
            background: #009f95;
        }
    </style>
</head>
<body>
    <div id="p_2">
        <div id="c_2">
            xxxxxxx
        </div>
    </div>
</body>
</html>
複製程式碼

本文旨在個人學習並記錄,如有侵權,請聯絡告知,謝謝!

相關文章