CSS - 在 float div 中垂直居中图像

标签 css center vertical-alignment

我决定在这个问题上认输并需要一些帮助:)。根据标题,尝试垂直对齐包含在 float 固定高度 div 中心的 anchor 元素中的图像。

为解决方案做了很多谷歌搜索,当 div 未 float (但它需要 float )时,我可以获得的壁橱在下面。任何想法将不胜感激!

.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>

最佳答案

好吧,我昨晚遇到了同样的问题(对于类似画廊的事情),并在偶然发现 this page 后设法找到了解决方案。 .我很高兴地报告这似乎也适用于 float 元素!

技巧基本上是给外部元素“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]-->

关于CSS - 在 float div 中垂直居中图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3655331/

相关文章:

html - 什么时候可以在 css 中使用百分比?

html - 从容器内将侧边栏放置在绝对左侧,但保持侧边栏的高度

css - 垂直对齐标签

css - Bootstrap 4 垂直对齐不起作用

html - 如何垂直将 Logo 置于标题的左侧并将导航置于标题的右侧?

html - 两个 div 在另一个 div 上方等距形成中心

javascript - 在 Firefox 中加载图像时显示边框和标题

html - 水平和垂直居中两个 div (CSS)

center - 如何将自定义 GUI 添加到 Game Center 以匹配 iphone 游戏的外观和感觉?

css - 在 div 中以绝对位置居中两个容器