我想放置一个< div>在一个元素的中间。水平对齐很容易,当然垂直对齐可以用JS完成,但我确信用CSS做更好的方法。有什么诀窍?
P.S。我需要这个用于HTML5< canvas>的应用程序element,所以我不介意该解决方案是否仅适用于支持canvas的浏览器和IE 7,8(使用插件时支持画布)。
编辑:div 的高度(和宽度)可在支持CSS3属性resize
的浏览器中调整大小。但是,我并不介意太多。
另一个编辑:我也不知道div的高度(即使它没有调整大小)。
这个例子使用JS。 (Loktar - 感谢链接)。
Thanks();
答案 0 :(得分:3)
的 Live Demo 强> 的
垂直对齐的一种方法是将line-height
设置为容器的height
。
#parent{
width: 200px;
height: 300px;
line-height: 300px;
text-align:center;
}
答案 1 :(得分:2)
如果要对齐的元素具有固定大小,请将其设为绝对位置,并将其top
和left
设为50%。然后减去其margin-top
的一半高度和margin-left
的宽度的一半。 e.g。
<强> HTML:强>
<div id="container">
<div id="alignedcontainer">content</div>
</div>
<强>的CSS:强>
#container {
position: relative;
}
#alignedcontainer {
position: absolute;
width: 500px;
height: 400px;
top: 50%;
left: 50%;
margin-top: -200px;
margin-left: -250px;
}
答案 2 :(得分:1)
如果元素不需要换行,快速而肮脏的方法是将行高设置为等于div高度(假设它是静态高度)。
答案 3 :(得分:1)
适用于Chrome
<html>
<head>
<style>
#outer
{
position: relative;
border: 1px solid #000;
width: 400px;
height: 400px;
margin: 20px;
padding: 20px;
}
#inner
{
position:absolute;
top:25%;
right:25%;
bottom:25%;
left:25%;
width: 200px;
height: 200px;
background-color: #ccc;
}
</style>
</head>
<body>
<div id="outer">
<div id="inner"></div>
</div>
</body>
答案 4 :(得分:1)