CSS實現水平垂直居中方式

一、定位css

核心代碼實現請看示例代碼中的註釋:html

<!DOCTYPE html>
<html lang="zh">

    <head>
        <meta charset="UTF-8" />
        <title>CSS水平垂直居中實現方式--定位實現</title>
        <style type="text/css">
            *{
                margin: 0;
                padding: 0;    
            }
            .p{
                /*父元素爲除了static之外的定位方式*/
                position: relative;
                /*position: absolute;*/
                /*position: fixed;*/
                width: 500px;
                height: 500px;
                border: 1px solid red;
            }
            .c{
                /*子元素爲絕對定位*/
                position: absolute;
                width: 200px;
                height: 200px;
                /*top、bottom、left和right 均設置爲0*/
                top: 0;
                bottom: 0;
                left: 0;
                right: 0;
                /*margin設置爲auto*/
                margin:auto;
                border: 1px solid green;    
            }
        </style>
    </head>

    <body>
        <div class="p">
            <div class="c">
                子元素
            </div>
        </div>
        
    </body>

</html>

效果:瀏覽器

 

二、table-cell佈局佈局

核心代碼實現請看示例代碼中的註釋:flex

<!DOCTYPE html>
<html lang="zh">

    <head>
        <meta charset="UTF-8" />
        <title>CSS水平垂直居中實現方式--定位實現</title>
        <style type="text/css">
            *{
                margin: 0;
                padding: 0;    
            }
            .p{
                width: 500px;
                height: 500px;
                border: 1px solid red;
                display: table-cell;
                /*vertical-align: middle; 實現垂直居中*/
                vertical-align: middle;
            }
            .c{
                width: 200px;
                height: 200px;
                border: 1px solid green;
                /*margin: 0 auto; 實現水平居中*/
                margin: 0 auto;    
            }
        </style>
    </head>

    <body>
        <div class="p">
            <div class="c">
                子元素
            </div>
        </div>
        
    </body>

</html>

效果同上。spa

三、flex佈局code

核心代碼實現請看示例代碼中的註釋:orm

<!DOCTYPE html>
<html lang="zh">

    <head>
        <meta charset="UTF-8" />
        <title>CSS水平垂直居中實現方式--定位實現</title>
        <style type="text/css">
            * {
                margin: 0;
                padding: 0;
            }
            
            .p {
                width: 500px;
                height: 500px;
                border: 1px solid red;
                /*flex 佈局*/
                display: flex;
                /*實現垂直居中*/
                align-items: center;
                /*實現水平居中*/
                justify-content: center;
            }
            
            .c {
                width: 200px;
                height: 200px;
                border: 1px solid green;
            }
        </style>
    </head>

    <body>
        <div class="p">
            <div class="c">
                子元素
            </div>
        </div>

    </body>

</html>

效果同上,注意瀏覽器兼容性問題htm

四、translate+relative定位blog

核心代碼實現請看示例代碼中的註釋:

<!DOCTYPE html>
<html lang="zh">

    <head>
        <meta charset="UTF-8" />
        <title>CSS水平垂直居中實現方式--定位實現</title>
        <style type="text/css">
            * {
                margin: 0;
                padding: 0;
            }
            
            .p {
                width: 500px;
                height: 500px;
                border: 1px solid red;
            }
            
            .c {
                width: 200px;
                height: 200px;
                border: 1px solid green;
                /*relative 定位*/
                position: relative;
                /*top和left偏移各爲50%*/
                top: 50%;
                left: 50%;
                /*translate(-50%,-50%) 偏移自身的寬和高的-50%*/
                transform: translate(-50%, -50%);
            }
        </style>
    </head>

    <body>
        <div class="p">
            <div class="c">
                子元素
            </div>
        </div>

    </body>

</html>

效果同上,注意瀏覽器兼容性問題

相關文章
相關標籤/搜索