CSS3实现DIV垂直居中+⽔平居中的四种⽅法<div class="div1">
<div class="div2"></div>
</div>
html结构如上
⽅法1:display:table-cell + textalign:center
注:display:table-ceil会使元素变为内联元素div中的div居中
.div1{
width: 200px;
height: 150px;
background: dodgerblue;
text-align: center;
display: table-cell;
vertical-align: middle;
}
.div2{
width: 60px;
height: 30px;
background: yellow;
display: inline-block;
}
⽅法2:display:table-ceil + margin: 0 auto
.div1{
width: 200px;
height: 150px;
background: dodgerblue;
display: table-cell;
vertical-align: middle;
}
.div2{
width: 60px;
height: 30px;
background: yellow;
margin: 0 auto;
}
⽅法3:定位+负的margin,css如下:
1.div1{
2 width: 200px;
3 height: 150px;
4 background: dodgerblue;
5 position: relative;
6 }
7 .div2{
8 width: 60px;
9 height: 30px;
10 background: yellow;
11 position: absolute;
12 top: 50%;
13 left: 50%;
14 margin-left: -30px;
15 margin-top:-15px;
16 }
⽅法4:内部div放⼊表格中,dom结构如下:
1<div class="div1">
2<table class="t1">
3<tr>
4<td></td>
5<td></td>
6<td></td>
7</tr>
8<tr>
9<td></td>
10<td><div class="div2"></div></td>
11<td></td>
12</tr>
13<tr>
14<td></td>
15<td></td>
16<td></td>
17</tr>
18</table>
19</div>
只需使外层div与table的长宽⼀致便可,css如下:
1.div1{
2 width: 200px;
3 height: 150px;
4 background: dodgerblue;
5 text-align: center;
6 vertical-align: middle;
7 }
8 .div2{
9 width: 60px;
10 height: 30px;
11 background: yellow;
12 display: inline-block;
13 }
14 .t1{
15 width: 200px;
16 height: 150px;
17 }
*直观感受⽅法4略显臃肿,但究竟使⽤哪种⽅法就需要视情况分析。⽐如说需要使⽤表格,并且在表现层中央需要⼀个块级元素,那么⽅法4就显得两全其美了。其余三种⽅法就需要分析div内部和外部的DOM结构和元素。总之,没有最好的,只有最合适的。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论