如何讓一個div居於頁面正中間


如何讓一個div居於頁面正中間

如何讓一個div居於頁面中間,我今天說的是讓一個div水平居中同時垂直居中,而不是簡單的top:50%,left:50%。當然,我們就按一開始的思路寫一下:top,left屬性都設為50%,看一下效果。

<!DOCTYPE html>   
<html lang="en">   
<head>   
    <meta charset="UTF-8">   
    <title>div居於頁面正中間</title>   
    <style type="text/css">   
        *{   
            margin: 0;   
            padding: 0;   
            background-color: #EAEAEA;   
        }   
        div{   
            width: 200px;   
            height: 200px;   
            background-color: #1E90FF;   
        }   
        .center-in-center{   
            position: absolute;   
            top: 50%;   
            left: 50%;   
        }   
    </style>   
</head>   
<body>   
    <div class="center-in-center"></div>   
</body>   
</html>  

img

從我的截圖可以看出,div的左頂點剛好在頁面的中心點處。現在的思路是,如何移動div然后讓div的中心和頁面中心重合,即可達到我們一開始想要的結果。在這里我要介紹一種方法,使用css的transform屬性。由於這個屬性的值很多,我這里就不一一介紹,只是說一下它的translate。我們給剛才的center-in-center類加上translate(0,-50%)

.center-in-center{   
    position: absolute;   
    top: 50%;   
    left: 50%;   
    transform: translate(0, -50%);   
} 

img

如果使用過這個屬性,應該知道怎么回事了。translate(0, -50%),第一個值是指水平移動量,和tansform的translateX效果一樣,第二個值那就是垂直方向偏移量,但為負數時,代表反方向移動。現在我們只需tanslate(-50%,-50%)就可以達到div既水平居中同時垂直居中。

附上完整代碼與效果

<!DOCTYPE html>   
<html lang="en">   
<head>   
    <meta charset="UTF-8">   
    <title>div居於頁面正中間</title>   
    <style type="text/css">   
        *{   
            margin: 0;   
            padding: 0;   
            background-color: #EAEAEA;   
        }   
        div{   
            width: 200px;   
            height: 200px;   
            background-color: #1E90FF;   
        }   
        .center-in-center{   
            position: absolute;   
            top: 50%;   
            left: 50%;   
            -webkit-transform: translate(-50%, -50%);   
            -moz-transform: translate(-50%, -50%);   
            -ms-transform: translate(-50%, -50%);   
            -o-transform: translate(-50%, -50%);   
            transform: translate(-50%, -50%);   
        }   
    </style>   
</head>   
<body>   
    <div class="center-in-center"></div>   
</body>   
</html>  

img

說多兩句,這也可以是一道非常不錯的面試題,大家可以留意一下。當然還有其他解法,這里就不再班門弄斧了。另外,css3的transform是一個非常強大的屬性,可以做很多變換3d之類的炫酷效果,如果有興趣可以深入研究一下。但前端有一個不得不說的痛,瀏覽器兼容性問題。。。其他的瀏覽器還好說,萬惡的IE,IE9支持一小部分屬性,IE9以下全部不支持。如果還深愛着IE,那只能另辟蹊徑,甚至不惜用js去解決咯!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM