我已经搜索了很多关于居中一个div元素的方法,无论是水平还是垂直居中,这是所有地方都提供的方法:
div {
position:fixed;
top:50%;
left:50%;
margin-left:(div width/2)
margin-top: (div height/2)
}
我刚找到了一种新的方法来居中一个 `div`,无论是水平还是垂直方向,只需把它包含在表格中即可。我已经在ie7及以上版本以及其他浏览器上进行了测试。
这里有一个示例:http://jsbin.com/ocenok/2/ 我想知道第一种方法在互联网、SO等处随处可见,并且需要预先知道宽度和高度,或者通常通过 Javascript 计算。而表格方法似乎毫无瑕疵,既不需要 javascript 也不需要固定高度/宽度。
那么表格方法有什么缺点吗?(我不知道要居中的 div 的高度/宽度。)
更新(为了让我的问题更清楚):
我个人非常讨厌使用表格来布局非表格/布局数据。
1.我知道可以使用 Javascript 轻松实现我想要的效果。
2.我想通过使用 `display:table` 来实现,但这会削弱对IE7的支持。
但我想要理解的是,当我可以使用单个 `` 元素来实现这一点时,如果有的话,有什么缺点。
<table>
<tr>
<td>
<div>This is div that needs to be centered.</div>
</td>
</tr>
</table>
table {
width:100%;
height:100%;
position:fixed;
top:0;
left:0;
}
table td {
width : 100%;
text-align: center;
}
div {
width:100px;
height:100px;
background:pink;
margin: 0 auto;
}