實現沒有寬高的盒子水平垂直居中


實現一個不設置寬高的盒子水平垂直居中的效果的方法

方法一、CSS+定位

讓其父元素相對定位,內部元素絕對定位,這里的父元素為body。

  原理:讓未定義寬高的圖片上下左右距離都為0.然后給一個margin自適應。可以想象成一個盒子,給了四個方向的相同的力,這樣就會形成一種相對的均衡力量讓其停留在中間位置了。

<style>
    img{
        position:absolute;
        top:0;
        bottom:0;
        left:0;
        right:0;
        margin: auto ;
    }
</style>

<body>
    <img src="img/20181008095016_59996.jpg" alt="">
</body>

方法二、

通過設置內部元素絕對定位,給一個translate屬性,讓其在x軸和y軸進行平移。原理跟方法一相似。

    <style>
       .ided{
           position:absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
                     /* X負數向左平移    Y軸負數往上平移 */
            background-color: burlywood;
            width:200px;
            height:200px;
        
       }
       

    </style>
</head>
<body>
        <div class="ided"> </div>
</body>
</html>

 方法三、通過display:table-cell

  display:table-cell指讓標簽元素以表格單元格的形式呈現,使元素類似於td標簽。IE8+及現代版本的瀏覽器都支持此屬性,IE6/7不支持(可用其他方法實現類似效果)。同樣,display:table-cell屬性也會被float,position:absolute等屬性破壞效果,應避免同時使用。

  vertical-align 用來指定行內元素(inline)或表格單元格(table-cell)元素的垂直對齊方式。

<style>
    .par{
        width:200px;
        height:200px;
        text-align: center;
        display:table-cell;;
        vertical-align: middle;
        background-color: chartreuse;
    }
    .box{
        /* vertical-align: middle; */
        display:inline-block;
       
    }
   
</style>

<body>
    <div  class="par">
        <div class="box">234</div>
    </div>
    
</body>

 


免責聲明!

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



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