咳咳,同学,你先讲一下如何让一个div垂直水平居中,至少讲三种方法?
这句话应该也都很熟吧,面试官的基操,当然这也是css中很有代表性的一道题了,作为前端领域的专业人员,你支支吾吾地就说不过去了吧,至少应该笑着说出四五个吧~~~
话不多说,上方案,先看看css3之前的做法,分为知道盒子的宽高和不知道盒子的宽高两种,先看需要知道盒子的宽高的:
方案一:利用margin:auto 自动适应
<style>
.parent{
position:relative;
width:500px;
height:500px;
background-color: aquamarine;
}
.child{
width:200px;
height:300px;
background-color: bisque;
position:absolute;
top:0;
bottom:0;
left:0;
right:0;
margin:auto;
}
</style>
<div class="parent">
<div class="child">哈哈哈</div>
</div>
方案二:利用定位中心偏移的方法
<style>
.parent {
width: 200px;
height: 300px;
background-color: aquamarine;
position: relative;
}
.child {
width: 100px;
height: 150px;
background-color: bisque;
position: absolute;
top: 50%;
left: 50%;
margin-top: -75px;
margin-left: -50px;
}
</style>
<div class="parent">
<div class="child">哈哈哈</div>
</div>
看看不需要知道盒子宽高的方案:
方案:利用table-cell+inline-block
<style>
.parent{
width:500px;
height:500px;
background-color: aquamarine;
display:table-cell;
text-align:center;
vertical-align:middle
}
.child{
display:inline-block;
}
</style>
<div class="parent">
<div class="child">哈哈哈</div>
</div>