一些div垂直居中的方法

一些div垂直居中的方法css垂直居中方法

html结构

<div class="parent">
  <div class="child"></div>
</div>

第一种 flex

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

第二种 flex + margin

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

第三种 grid

div.parent {
    display: grid;
}
div.child {
    justify-self: center;
    align-self: center;
}

第四种 position + transform/margin

div.parent {
    position: relative; 
}
div.child {
    position: absolute; 
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);  
}
/* 或者 */
div.child {
    width: 50px;
    height: 50px;
    position: absolute;
    left: 0;
    top: 0;
    right: 0;
    bottom: 0;
    margin: auto;
}

上面四种是比较常用的方法

第五种

有点不好理解(原理就是:设置inline-block和vertical-align:middle后,里面的元素会基于中间的文字准线居中对齐(学生时代的英语本子里面写字母,都是4条线形成三个空白区域,文字的对齐就是根据这几条线的;
然后,由于伪类是position:static(默认)的,那么伪类撑开了父元素的基准线(高度是100%),使得此时文字的基准线就是整个div.parent的中心了,另外vertical-align只影响inline或者inline-block的,所以div.child设置vertical-align就能居中了。)

.parent {
    font-size: 0;
    text-align: center;
    &::before {
        content: "";
        display: inline-block;
        width: 0;
        height: 100%;
        vertical-align: middle;
    }
}
.child{
  display: inline-block;
  vertical-align: middle;
}

第六种 table-cell

.parent {
        height: 600px;
        width: 600px;
        display: table-cell;
        text-align: center;
        vertical-align: middle;
}
 .child {
        display: inline-block;
        width: 100px;
        height: 100px;
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/35937.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注