我已经决定对这个问题嗤之以鼻,需要一些帮助:)。根据标题试图垂直对齐包裹在浮动固定高度div的中心的锚元素中的图像。
完成了大量的谷歌搜索解决方案,当div没有浮动时我可以得到的壁橱(但它需要)。任何想法都会非常感激!
.class_name {
/*float: left*/
width:153px;
height:153px;
margin:3px;
padding:4px;
border:1px solid #dedede;
text-align: center;
vertical-align: middle;
background-color: #000;
display: table-cell;
}
<div class="class_name">
<a href=""><img src="image.jpg" alt="" /></a>
</div>
答案 0 :(得分:20)
好吧,我昨晚遇到了同样的问题(对于类似画廊的事情),并在绊到this page之后设法找到了解决方案。我很高兴地报告这似乎也适用于浮动的元素!
技巧基本上是给外部元素“display:table;”和内部元素(包含img)“display:table-cell;”。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html><head>
<style type="text/css">
.class_name {
display: table;
float: left;
overflow: hidden;
width: 153px;
height: 153px;
}
.class_name a {
display: table-cell;
vertical-align: middle;
text-align: center;
}
</style>
</head>
<body>
<div class="class_name">
<a href=""><img src="image.jpg" alt="" /></a>
</div>
</body>
</html>
对于IE8,您需要处于标准模式。需要一些额外的定位才能让它在IE7中运行:
<!--[if lte IE 7]><style type="text/css">
.class_name {
position: relative;
}
.class_name a {
position: absolute;
top: 50%;
}
.class_name img {
position: relative;
top: -50%;
width: 100%;
}
</style><![endif]-->
答案 1 :(得分:0)
如果高度固定且您知道图像的大小,只需手动定位图像即可。在图片上使用position:absolute;top:25px;
或类似的内容,或为图片添加边距:margin:25px 0;
。
答案 2 :(得分:0)
这里有一个跨浏览器的css解决方案:http://www.vdotmedia.com/blog/vertically-center-content-with-css/