我已经搜索了很多以div
水平和垂直居中 a ,这是到处给出的方法:
div {
position:fixed;
top:50%;
left:50%;
margin-left:(div width/2)
margin-top: (div height/2)
}
我刚刚找到了一种新的解决方案div
,可以通过将 a 包装在表格中来水平和垂直居中它。我已经在 ie7 及以上版本以及其他浏览器中对其进行了测试。
这是一个例子:http: //jsbin.com/ocenok/2/
我想知道第一种方法在 Internet、SO 等上随处可见,并且需要事先了解宽度和高度,或者通常通过 Javascript 计算。
表格方法似乎完美无缺,既不需要 javascript,也不需要固定的高度/宽度。
表格方法有什么缺点吗?
(我不知道要居中的 div 的高度/宽度。)
更新(为了让我的问题更清楚):
我自己讨厌将表格用于非表格/布局数据。
- 我知道使用 Javascript 可以轻松实现我想要的。
display:table
我想我可以使用,杀死 IE7 支持来实现这一点。
但我想了解的是,当我可以使用单个<table>
元素实现这一点时,如果有的话,缺点是什么。
在这里检查答案和类似问题,没有人推荐这种方法,即使它使用所有有效HTML
的元素和语法和规则。
如果大家都推荐使用javascript
来处理演示,虽然使用起来很容易CSS
,但它一定有一些缺点。
代码 :
<table>
<tr>
<td>
<div>This is div that needs to be centered.</div>
</td>
</tr>
</table>
然后应用以下 CSS
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;
}