利用绝对定位实现水平垂直居中

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>

    <style>
        .box1{
            width: 500px;
            height: 500px;
            background-color: #bfa;

            position: relative;
        }

        .box2{
            width: 100px;
            height: 100px;
            background-color: orange;
            position: absolute;
            margin: auto;
            /* 
                水平布局
                    left + margin-left + border-left + padding-left + width + padding-right + border-right + margin-right + right = 包含块的内容区的宽度

                - 当我们开启了绝对定位后:
                    水平方向的布局等式就需要添加left 和 right 两个值
                        此时规则和之前一样只是多添加了两个值:
                            当发生过度约束:
                                如果9个值中没有 auto 则自动调整right值以使等式满足
                                如果有auto,则自动调整auto的值以使等式满足

                        - 可设置auto的值
                            margin width left right

                        - 因为left 和 right的值默认是auto,所以如果不指定left和right
                            则等式不满足时,会自动调整这两个值
              所以设置right,left为0,给width设置值,给margin设置auto就会水平居中,不设置margin:auto不行的,因为这会调整margin-right为最大值。 垂直方向布局的等式的也必须要满足 top + margin-top/bottom + padding-top/bottom + border-top/bottom + height = 包含块的高度             同理,
设置top,bottom为0,给hegight设置值,给margin设置auto就会水平居中,不设置margin:auto不行的,因为这会调整margin-bottom为最大值。
            如果top,bottom为0,height没有设置值,那么height就会为auto,占满高度
       */ left: 0; right: 0; top: 0; bottom: 0; } </style> </head> <body> <div class="box1"> <div class="box2"></div> </div> </body> </html>

 

posted @ 2020-08-14 15:56  webpon  阅读(204)  评论(0编辑  收藏  举报