利用css实现水平垂直居中
当我们不知道父元素和子元素的宽高时,如何实现父元素和子元素都水平垂直居中呢?
方法1:
让父元素的宽高都是100%,设置其内容居中(text-aline:center;);给子元素添加绝对定位(position:absolute;),设置其距离父元素的top和left都为父元素宽高的50%,再添加平移就能水平垂直居中了,我们可以给子元素添加一个内容看其是否是水平垂直居中的。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<style>
*{
margin: 0;
padding: 0;
}
html,body{
width: 100%;
height: 100%;
}
.fu{
width: 100%;
height: 100%;
background-color: aqua;
text-align: center;
}
.zi{
position: absolute;
top:50%;
left: 50%;
background-color: bisque;
transform: translate(-50%,-50%);
}
.zi p{
width: 30px;
height: 30px;
}
</style>
<script src="js/vue.js" type="text/javascript" charset="utf-8"></script>
</head>
<body>
<div class="fu">
<div class="zi">
<p></p>
</div>
</div>
</body>
</html>
效果图为:
方法二:
利用display:flex;这一属性来实现水平垂直居中
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<style>
*{
margin: 0;
padding: 0;
}
html,body{
width: 100%;
height: 100%;
}
.fu{
display: flex;
justify-content: center;
align-items: center;
background-color: bisque;
width: 100%;
height: 100%;
}
.zi{
display: flex;
background-color: aqua;
}
.zi p{
width: 30px;
height: 30px;
}
</style>
<script src="js/vue.js" type="text/javascript" charset="utf-8"></script>
</head>
<body>
<div class="fu">
<div class="zi">
<p></p>
</div>
</div>
</body>
</html>
显示效果: