我想在div中设置图像的垂直对齐方式。我用img {vertical-align:middle} 但它没有用。
答案 0 :(得分:16)
使用line-height
属性可以解决问题:
<style>
.someclass {
width: 300px;
height: 300px;
text-align: center;
line-height: 300px;
border: dotted;
}
.someclass img {
margin: auto;
vertical-align: middle;
}
</style>
<div class="someclass">
<img src="someimg.jpg" border="0" alt="">
</div>
答案 1 :(得分:6)
这是一个不需要JavaScript的解决方案(正如我之前的解决方案所做的那样)。
您可以通过将display: table-cell
分配给包含div来实现您的目标。这是一个例子:http://jsbin.com/evuqo5/2/edit
我觉得我必须警告你,你需要在你想要支持的每个浏览器中测试它。对table-cell
值的支持相当新,特别是在Firefox中。我知道它适用于Firefox 4,但我不知道任何3.x迭代。你也想在IE中测试(我只在Chrome 10和Firefox 4中测试过)。
CSS:
div#container {
width: 700px;
height: 400px;
position: relative;
border: 1px solid #000;
display: table-cell;
vertical-align: middle;
}
div#container img {
margin: 0 auto;
display: block;
}
如果您不想水平对齐图像,则不需要div#container img
样式。
答案 2 :(得分:2)
如果你想按照我的想法行事,那么垂直对齐是行不通的;你需要使用定位。
通常,将容器放置在相对位置,然后将图像置于绝对位置,顶部和左侧设置为50%,然后通过将负边距设置为等于宽度/高度的一半来将图像移回中心。
以下是一个有效的例子:http://jsbin.com/evuqo5/edit
基本CSS是这样的:
#container { position: relative; }
#container img {
position: absolute;
left: 50%;
top: 50%;
margin-top: /* -1/2 the height of the image */
margin-left: /* -1/2 the width of the image */
}
答案 3 :(得分:2)
见这个:How to vertical align image inside div
如果您还要水平对齐,请添加right
和left
,如下所示:
div {
position:relative;
}
img {
position:absolute;
top:0;
bottom:0;
left:0;
right:0;
margin:auto;
}
答案 4 :(得分:0)
如果您将div display
属性设置为table-cell
,则vertical-align: middle;
将有效。
vertical-align
规则仅影响具有display: table-cell
的表格单元格或元素。
有关详细说明,请参阅this article from SitePoint。
<style>
/* change body to .someClasses's parent */
body {
width: 100%;
height: 100%;
display: table;
}
body > .someclass {
width: 300px;
height: 300px;
text-align: center;
border:dotted;
margin: 0 auto
display: table-cell;
vertical-align: middle;
}
</style>
<body>
<div class="someclass">
<img src="someimg.jpg" border="0" alt="">
</div>
</body>
答案 5 :(得分:0)
以下帖子有一些有用的参考:
Text Alignment w/ IE9 in Standards-Mode
此外,根据您要测试的IE版本,您可能最终需要一些特定于浏览器的黑客或一些jQuery / JavaScript代码。
如果必须,请使用单行一个单元格表并利用vertical-align
属性。这是一种蛮力,而不是过于语义,但它有效。