マージンはブロックレベルの要素を水平方向にのみ中央揃えでき、垂直方向の中央揃えには配置が必要です

まず、autoの意味を理解する必要があります。autoは残りのスペースを自動的に埋めます。

ブロックレベルの要素は、幅を設定しても、それ自体で行を占有します。CSS仕様では、要素の左外側マージン+左ボーダー幅+左内側マージン+コンテンツ幅+右内側マージン+右ボーダー+右マージン=包含ブロックの幅彼の左マージンと右マージンをautoに設定すると、彼は残りの距離を均等に達成し、水平方向のセンタリング効果を達成します。

ただし、ブロックレベル要素の高さは自動的に拡張されないため、その外部サイズは自動的に親要素で埋められず、残りのスペースがなくなります。そのため、マージンを自動上下に設定しても、垂直方向の中央揃えはできません。

しかし、ポジショニング+マージンによってそれを達成できます。

ただし、親要素が本文の場合、この方法は実行できません。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .box {
            width: 500px;
            height: 500px;
            position: relative;
            background-color: pink;
        }
        .box div {
            width: 200px;
            height: 200px;
            background-color: skyblue;
            
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            margin: auto;
        }
    </style>
</head>
<body>
    <div class="box">
         <div></div>
    </div>
   
</body>
</html>

 

おすすめ

転載: blog.csdn.net/xingxinglinxi/article/details/108606684