1. 程式人生 > >水平垂直居中

水平垂直居中

一半 水平居中 type span adjust after 絕對定位 web 根據

1.利用絕對定位

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title>水平垂直居中</title>
        <style>
            .center{  
               position:absolute;  
               top:50%;  
               left:50%;  
               width:100px;  
               height
:30px; margin-top: -15px; margin-left: -50px; border:1px solid red; text-align:center; background: red; } </style> </head> <body> <div class="center">垂直水平居中</div
> </body> </html>

top與left設為50%,margin-left為寬度一半的負值,margin-top為高度一半的負值

此方法最常見,但僅僅適用於已知寬高的情況下。

2.絕對定位結合transform

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title>水平垂直居中</title>
        <style>
            .center
{ position:absolute; top:50%; left:50%; width:100px; height:30px; -webkit-transform: translate(-50%, -50%); -webkit-transform: translate(-50%, -50%); -ms-transform: translate(-50%, -50%); transform: translate(-50%, -50%); border:1px solid red; text-align:center; background: red; } </style> </head> <body> <div class="center">垂直水平居中</div> </body> </html>

可在未知寬高時使用,但在IE8及以前的瀏覽器內不支持,且內部文本可能因為移動而稍顯模糊

3.利用flex

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title>水平垂直居中</title>
        <style>
            .cont-center {
                height: 500px;
                -webkit-display: flex;
                -moz-display: flex;
                display: flex;
                justify-content: center;
                align-items: center;
            }
            .center{  
               width:100px;  
               height:30px;  
               background: red;
            }  
        </style>
    </head>
    <body>
        <div class="cont-center">
            <div class="center">垂直水平居中</div>
        </div>
    </body>
</html>

IE11以下不支持justify-content、align-items等屬性

4.利用ifc布局,即空的img或者偽元素

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title>水平垂直居中</title>
        <style>
            .cont-center {
                height: 500px;
                text-align: center;
                font-size: 0;
                -webkit-text-size-adjust: none;
            }
            .center{  
               width:100px;  
               height:30px;  
               font-size: 15px;
               background: red;
               vertical-align: middle;
               display: inline-block;
            }  
            .cont-center:after {
                content: ‘‘;
                width: 0;
                height: 100%;
                display: inline-block;
                vertical-align: middle;
            }
        </style>
    </head>
    <body>
        <div class="cont-center">
            <div class="center">垂直水平居中</div>
        </div>
    </body>
</html>

5.利用calc

根據雅虎的35個前端優化法則,並不提倡使用calc,略過。

水平垂直居中