父div中的中心图像元素

时间:2013-08-25 12:30:25

标签: html css image

如何在父div中设置图像元素的中心?我想这样做,以便图像的中间始终在他父母的中心。此外,我希望图像始终具有100%的高度(注意:我不想拉伸图像宽度)。

请点击此处查看示例:http://jsfiddle.net/Ex5ax/5/

<div class="box">
  <img src='featured.jpg' />
</div>

CSS:

.box { height: 100%; width: 450px; border: 2px solid red; background: green; overflow: hidden; }
.box img { height: 100%; width: auto; text-align: center; }

5 个答案:

答案 0 :(得分:9)

text-align: center; CSS声明添加到父.box而不是子.box img

.box {
    height: 100%;
    width: 450px;
    border: 2px solid red;
    background: green;
    overflow: hidden;
    text-align: center;  /* align center all inline elements */
}

以下是 Fiddle

更新

图像下方似乎还有一个5px间隙,它属于行高保留字符。要从<img>等内联元素中删除它,您可以使用vertical-align: bottom

.box img {
    height: 100%;
    width: auto;
    vertical-align: bottom; /* <-- fix the vertical gap */
}

<强> JSFiddle Demo #2

答案 1 :(得分:3)

您需要将text-align: center;从图像的CSS移动到其父div的CSS,因此您的CSS看起来像这样:

.box {
    height: 100%;
    width: 450px;
    border: 2px solid red;
    background: green;
    overflow: hidden; 
    text-align:center
}

.box img {
    height: 100%;
    width: auto;
}

就是这样!

答案 2 :(得分:0)

尝试将图像边距属性设为margin:0 auto,如果父div具有宽度,则图像将按父项居中

答案 3 :(得分:0)

我会将此添加到.box img。

.box img { margin-left: -25%; margin-top: -25%; }

您可能需要调整每张图片,或者可能不是因为尺寸。

答案 4 :(得分:0)

如果有人在这里寻找解决方案,请使用 display: flex

.box {
   display:flex;
   justify-content: center;
   align-items: center;
   background: green;
   border: 2px solid red;
   height: 100%;
   width: 450px;
   overflow: hidden;   
}
.box img {
  justify-content: center;
  align-items: center;
}