CSS-水平垂直居中
Posted 王超
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CSS-水平垂直居中相关的知识,希望对你有一定的参考价值。
这是笔者近日面试中遇到的一个“棘手”问题,所谓棘手,是因为CSS这个东西不经常写的话,是一定会忘,会手生的。笔者只是提及了最常见也是最简单的Flex,却被面试官继续追问,本以为会根据记忆写出来点什么,最后却无奈。。。
话不多说了,上干货。
CSS垂直居中的方式,这里我都以父元素嵌套子元素的形式展开:
已知子元素的宽高的情况下:
absolute + margin:auto
.parent{
width:500px;
height:500px;
border:1px solid #ccc;
position:relative;
}
.children{
width:300px;
height:300px;
background-color:red;
position:absolute;
top:0;
right:0;
bottom:0;
left:0;
margin:auto;
}
absolute + -margin:
.parent{
/*同上面的盒子那样*/
}
.children{
width:300px;
height:300px;
background-color:red;
position:absolute;
top:50%;
left:50%;
margin-top:-150px;
margin-left:-150px;
}
子元素宽高未知的情况下:
flex布局:
.parent{
display:flex;
justify-content:center;
align-item:center;
}
absolute + transform:
.parent{
position:relative;
/*宽高同上面的盒子一样,这里不再重复设置了*/
}
.children{
position:absolute;
top:50%;
left:50%;
transform:translate(-50%,-50%);
}
以上是关于CSS-水平垂直居中的主要内容,如果未能解决你的问题,请参考以下文章
css html 如何将图片img标签 水平居中 垂直居中 和水平垂直居中