css怎样设置让盒子水平垂直居中的方法

本文介绍了五种不同的技术来实现网页元素的水平和垂直居中对齐:1) 使用Flexbox;2) 通过position相对和绝对定位;3) 利用position的auto margins;4) 利用文本居中和行内元素的垂直对齐;5) 应用CSS Grid布局。这些方法覆盖了不同场景下的居中需求,适用于各种现代浏览器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一种方法:弹性盒flexbox

<style>

div {

        display: flex;

        主轴水平居中

        justify-content: center;

        交叉轴水平居中

        align-items: center;

        width: 300px;

        height: 300px;

        border: 1px solid red;

}

p {

        width: 100px;

        height: 100px;

        background-color: green;

}

</style>

<body>

        <div>

                <p></p>

        </div>

</body>

第二种方法:position定位

<style>

div {

        相对定位

        position: relative;

        width: 300px;

        height: 300px;

        border: 1px solid red;

}

p {

       绝对定位

       position: absolute;

      走父元素上面的一半

       top: 50%;

       走父元素左边的一半

       left: 50%;

        走自身高度的一半像素

        margin-top: -50px;

        走自身宽度的一半像素

        margin-left: -50px;

        width: 100px;

        height: 100px;

        background-color: green;

}

</style>

<body>

        <div>

                <p></p>

        </div>

</body>

第三种方法:定位position

<style>

div {

        position: relative;

        width: 300px;

        height: 300px;

        border: 1px solid red;

}

p {

        position: absolute;

        top: 0;

        left: 0;

        right: 0;

        bottom: 0;

        margin: auto;

        width: 100px;

       height: 100px;

       background-color: green;

}

</style>

<body>

        <div>

                <p></p>

        </div>

</body>

第四种方法:

div {

             width: 300px;

            height: 300px;

            border: 1px solid red;

            text-align: center;

            line-height: 300px;

}

p {

            转为行内快元素

           display: inline-block;

            width: 100px;

            height: 100px;

            background-color: green;

            文本垂直居中

            vertical-align: middle;

}

<body>

        <div>

                <p></p>

                <span></span>

        </div>

</body>

第五种方法:

.box {

            width: 300px;

            height: 300px;

            border: 1px solid #000;

            /* 网格布局 */

            display: grid;

            /* 设置3行高度均为100px */

            grid-template-rows: repeat(3,100px);

            /* 设置3列高度均为100px */

            grid-template-columns: repeat(3,100px);

            grid-template-areas: ". . ." ". a ." ". . .";

        }

        .small {

                    width: 100px;

                    height: 100px;

                    background-color: red;

                    grid-area: a;

                }

<div class="box">

        <div class="small"></div>

   </div>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值