div盒子实现垂直水平居中

时间:2025-01-20 10:54:38

CSS实现div盒子垂直水平居中
未修改前样式:
在这里插入图片描述
方法一:定位(父元素相对定位,子元素绝对定位)

     <style>
        .bigBox{
            position: relative;
            widows: 600px;;
            height:400px;
            border: 2px solid black;
        }

        .smallBox{
            position: absolute;
            top:0;
            left: 0;
            bottom: 0;
            right: 0;
            margin: auto;
            width: 200px;
            height: 200px;
            background-color:pink;
        }
    </style>
</head>
<body>
    <!-- div盒子实现垂直水平居中 -->

    <div class="bigBox">
        <div class="smallBox"></div>
    </div>
    
</body>

效果图一:在这里插入图片描述
方法二:外边距
口诀:父相子绝,上左各一半,外边距减自身宽高一半;

<style>
        .bigBox{
            position: relative;
            widows: 600px;;
            height:400px;
            border: 2px solid black;
        }

        .smallBox{
            position: absolute;
            top:50%;
            left: 50%;
            margin:-100px 0 0 -100px;
            width: 200px;
            height: 200px;
            background-color:pink;
        }
    </style>
</head>
<body>
    <!-- div盒子实现垂直水平居中 -->

    <div class="bigBox">
        <div class="smallBox"></div>
    </div>
    
</body>

效果图:
在这里插入图片描述
方法三:transform属性

<style>
        .bigBox{
            position: relative;
            widows: 600px;;
            height:400px;
            border: 2px solid black;
        }

        .smallBox{
            position: absolute;
            top:50%;
            left: 50%;
             /*  transform常用于 2D 或 3D 转换,该属性允许我们对元素进行旋转、缩放、移动或倾斜。  */
            transform: translate(-50%,-50%);
            width: 200px;
            height: 200px;
            background-color:pink;
        }
    </style>
</head>
<body>
    <!-- div盒子实现垂直水平居中 -->

    <div class="bigBox">
        <div class="smallBox"></div>
    </div>
    
</body>

效果图:
在这里插入图片描述

方法四:flex布局

    <style>
        .bigBox{
            display: flex;
            /* 垂直居中 */
            align-items: center; 
             /* 水平居中 */
            justify-content: center;
            widows: 600px;;
            height:400px;
            border: 2px solid black;
        }

        .smallBox{
          
            width: 200px;
            height: 200px;
            background-color:pink;
        }
    </style>
</head>
<body>
    <!-- div盒子实现垂直水平居中 -->

    <div class="bigBox">
        <div class="smallBox"></div>
    </div>
    
</body>

效果图:
在这里插入图片描述