div在body中水平垂直居中

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>水平垂直居中与body</title>

    <link rel="stylesheet" type="text/css" href="./css/index2.css" >

</head>

<body>

    <div class="absolute0marginauto">

        绝对定位 上下左右都是0px,margin使用auto

    </div>

    <div class="flexcenterparent">

        <div class="flexcentersub">

            使用css3的 flex模式  justify-content:center  aligin-items:center模式居中,但这个有点不适合在body中垂直水平居中,因为如果body都设置这种模式,那它里面的元素都水平垂直剧终了            

        </div>

    </div>

    <div class="marginwidhthalf">

        使用绝对定位 left50% top50%  然后 margin-left:div宽度高度一半  margin-top:div高度一半,

        这种需要知道本身的width height

    </div>

    <div class="absolutetransform">

        使用绝对定位 然后使用transform(-50%,-50%),进行移动,这种方法,不需要知道宽高,

        我不需要知道宽高

    </div>

</body>

</html>

--css

*{

    margin: 0px;

    padding: 0px;

}

 

html,body{

    width: 100%;

    height: 100%;

}

 

.absolute0marginauto{

    width: 100px;

    height: 100px;

    position: absolute;

    top: 0px;

    bottom: 0px;

    left: 0px;

    right: 0px;

    margin: auto;

    background: brown;

}

 

.flexcenterparent{

    width: 300px;

    height: 300px;

    display: flex;

    justify-content: center;

    align-items: center;

    border: 2px solid red;

}

 

.flexcentersub{

    width: 200px;

    height: 200px;

    border: 2px solid blue;

}

 

.marginwidhthalf{

    width: 200px;

    height: 200px;

    border: 2px solid violet;

    position: absolute;

    left: 50%;

    top: 50%;

    margin-left: -100px;

    margin-top: -100px;

}

 

.absolutetransform{

    border: 4px solid darkmagenta;

    color: darkorange;

    position: absolute;

    top: 50%;/*这个的50%是父元素的50%,二translate 50%是div本身的50%*/

    left: 50%;

    transform: translate(-50%,-50%);

}

 

 

顺便说下 文在在div中水平居中,使用 text-algin:center   垂直居中line-height:divheight

 

 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值