如何让未知大小的div居中

那么不知道两个盒子各自宽高的情况下,怎么实现子盒子的垂直居中呢

首先定义两个盒子,蓝色是爸爸,绿色是儿子

<div class="parent" id="parent">
    <div class="child" id="child"></div>
</div>
<style>
    .parent{
        width: 200px;
        height: 200px;
        background: rgb(108, 175, 238);
    }
    .child{
        width: 50px;
        height: 50px;
        background: rgb(177, 235, 166);
    }
</style>

方法1. 利用display: flex/grid

.parent {
    display: flex;
    justify-content: center;
    align-items: center;
}

方法2: 利用display: grid

.parent{
    display:grid;
    place-items: center;
}

注意:此方法等同于方法1,place-items: centerjustify-content: centeralign-items: center的简写

方法3: 利用display: flex/grid和margin: auto

.parent {
    display: flex;
}
.child {
    margin: auto;
}

或者

.parent {
    display: grid;
}
.child {
    margin: auto;
}

方法4. 利用transform

.parent{
    position:relative;
}
.child{
    position:absolute;
    top:50%;
    left:50%;
    transform:translate(-50%,-50%);
}

方法5. 利用 position和margin: auto

.parent {
    position: relative;
}
.child {
    position: absolute;
    margin: auto;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
}

注意:此方法子盒子必须要有具体宽高值


   转载规则


《如何让未知大小的div居中》 echo丶若梦 采用 知识共享署名 4.0 国际许可协议 进行许可。
 上一篇
数组方法集合 数组方法集合
includes用途: 检测数组中是否存在该元素,返回Boolean值 let list = [1, 2, 3]; let res = list.includes("蛙人") let res1 = list.includes(1) con
2021-04-12
下一篇 
将setState异步操作改为同步 将setState异步操作改为同步
异步的情况由React控制的事件处理函数,以及生命周期函数调用setState时表现为异步 。大部分开发中用到的都是React封装的事件,比如onChange、onClick、onTouchMove等(合成事件中)以及钩子函数中,这些事件处
2021-04-06
  目录