【前端学习】CSS常用水平居中方法记录

CSS常用水平居中方法记录

  <div class="container">
    <div class="box"></div>
  </div>

1. 通过子元素margin属性来实现水平居中

    .container{
      width: 500px;
      height: 200px;
      background-color: #0ff;
    }
    .container .box{
      width: 100px;
      height: 100px;
      margin: 0 auto;/*设置居中*/
      background:#00f;
    }

说明:

块级元素被块级元素包裹时,通常满足下面等式

margin-left + border-left + padding-left +width+padding-right+border-right+margin-right = 包含块的内容宽度

在宽度(width属性)没有设置具体值的时候,包含块通常会被子元素占满

在宽度(width属性)设置了具体值的时候,包含块空的部分会被子元素的margin占满

而当左右margin都设置为auto时,就能实现居中

2.通过给父元素设置text-align属性居中,子元素改为行内块元素来实现水平居中

    .container{
      width: 500px;
      height: 200px;
      text-align: center;/*设置其内部行内元素的布局方式为居中*/
      background-color: #0ff;
    }
    .container .box{
      width: 100px;
      height: 100px;
      display: inline-block;/*设置为行内块元素*/
      background-color: #00f;
    }

说明: 行内元素可以通过其包含块的text-align属性来进行布局

3.通过给子元素margin-left属性设置为50%,transform的translate函数参数为-50%来实现水平居中

    .container{
      width: 500px;
      height: 200px;
      background-color: #0ff;
    }
    .container .box{
      width: 100px;
      height: 100px;
      margin-left: 50%;/*相当于向右移动父元素宽度的50%*/
      transform: translate(-50%);/*向左移动自身边框的50%*/
      background-color: #00f;
    }

说明: margin属性的百分比是相对于包含块的宽度来确定的,而translate函数的百分比是相对于自身边框大小来确定的,所以这边居中相当于是把容器内的box先向右移动了容器宽度的50%,再向左移动自身边框的50%来实现居中的

4.通过父元素flex布局justify-content属性来设置居中

    .container {
      width: 500px;
      height: 200px;
      background-color: #0ff;
      display: flex;/*开启flex布局*/
      justify-content: center;/*设置主轴元素居中*/
    }
    .container .box{
      width: 100px;
      height: 100px;
      background-color: #00f;
    }

说明: flex布局中可以justify-content属性来设置主轴的元素布局

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

棋小仙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值