水平垂直居中的方法

方案一:绝对定位——上下左右为0,margin为auto

  • 父元素position设为relative,子元素position设为absolute,子元素margin设为auto,left,top,right,bottom设为0
    <style type="text/css">
        .wrap{
            width: 200px;
            height: 200px;
            border: 1px #000 solid;
            
            position: relative;
        }
        .box{
            width: 50px;
            height: 50px;
            border: 1px solid red;

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

    <div class="wrap">
        <div class="box">哈哈</div>
    </div>

方案二:绝对定位——margin为负一半

  • 父元素position设为relative,子元素position设为absolute,子元素left,top设为50%,margin-left,margin-top设为负子元素的一半
        .box{
            width: 50px;
            height: 50px;
            border: 1px solid red;

            position: absolute;
            left: 50%;
            top: 50%;
            margin-left: -25px;
            margin-top: -25px;
        }

方案三:绝对定位——transform变形

  • 父元素position设为relative,子元素position设为absolute,子元素left,top设为50%,transform的translate设为-50%
        .box{
            width: 50px;
            height: 50px;
            border: 1px solid red;

            position: absolute;
            left: 50%;
            top: 50%;
            transform: translate(-50%,-50%);
        }

方案四:弹性盒模型

  • 父元素的display设为flex,justify-content和align-items设为center
        .wrap{
            width: 200px;
            height: 200px;
            border: 1px #000 solid;
            
            display: flex;
            justify-content: center;
            align-items:center;
        }

方案五:table-cell

  • 父元素display设为table-cell,vertical-align设为middle,text-align设为center,子元素display设为inline-block,vertical-align设为middle
        .wrap{
            width: 200px;
            height: 200px;
            border: 1px #000 solid;

            display: table-cell;
            vertical-align: middle;
            text-align: center;
        }
        .box{
            width: 50px;
            height: 50px;
            border: 1px solid red;

            display: inline-block;
            vertical-align: middle;
        }

方案六:仅适用于单行文本

  • 父元素text-align设为center,line-height设为父元素的高度。
        .wrap{
            width: 200px;
            height: 200px;
            border: 1px #000 solid;

            text-align: center;
            line-height: 200px;
        }

    <div class="wrap">
        <div class="box">哈哈</div>
    </div>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容