块级元素上下左右居中的两个小技巧

块级元素的居中


之前写居中一般都是margin:atuto要么就是弹性盒子,不得不说弹性盒子确实好用。不过今天就记录一下另外两种的居中方式。

第一种

我们都知道元素居中有一种方式就是设置定位后left:50%然后transform:translateX(-50%),这种方法也是比较常用的一种。但是今天讲的居中方式和这个有点出入但是更简单。

<style>
    .big{
      width: 300px;
      height: 300px;
      border: 1px solid red;
      position: relative;
      margin: auto;
    }
    .small{
      width: 100px;
      height: 100px;
      background-color: deeppink;
      position: absolute;
      left: 0;
      right: 0;
      top: 0;
      bottom: 0;
      margin: auto;
    }
  </style>
</head>
<body>
  <div class="big">
    <div class="small"></div>
  </div>

效果图如下:
在这里插入图片描述
可以看到我的大盒子的居中是使用的margin:auto,小盒子也是margin:auto,那为什么一个是左右居中另外一个就是上下左右都居中呢。
原因就是margin:auto居中的原理,因为margin:auto是根据元素的流来的,在上面的例子中大盒子是一个标准的块级元素,所以他的宽度默认是百分百的。
虽然大盒子看起来只有我设置的那么宽,但是他的流还是默认百分之百,所以我设置了margin:auto之后它就会居中。
那么小盒子也是同理,在定位之后我给了上下左右都为0,这样就会将小盒子的流拉伸至大盒子的大小,这个时候我给小盒子设置margin:auto就会让小盒子上下左右以大盒子为标准都居中。


第二种

第二种方式其实也用到了弹性盒子,但是比你设置主轴和副轴居中来的更为直接。
代码如下:

 <style>
    .big{
      width: 300px;
      height: 300px;
      border: 1px solid red;
      display: flex;
      margin: auto;
    }
    .small{
      width: 100px;
      height: 100px;
      background-color: deeppink;
      margin: auto;
    }
  </style>
</head>
<body>
  <div class="big">
    <div class="small"></div>
  </div>

这里的效果图和上面的一样我就不做演示了,我直接在这里说一下原因。
当元素设置了弹性盒子之后他的子元素自动变为块级元素,而该元素的副轴会被拉伸,所以呈现的效果和上面的一样。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值