繁体   English   中英

在流体容器中将图像垂直居中

[英]centering image vertically in fluid container

<div id="A"> //Fluid Width And Height
Some content..............
</div>

<div id="B">
   <img src='xyz.jpg'>//Fluid Width and Height
</div>

CSS:

#A {
width:50%;
min-height:50px;
}
#B{
min-height:50px;
}
#B > img {
width:55%;
}

我想要的是:

  1. 分区B的高度应始终与分区A的高度相同。
  2. Div B内部的图像应在Div B中垂直居中。
  3. 在Divs A和B完全加载并应用了相应的CSS之后触发此代码的方法。

标记提琴: http : //jsfiddle.net/LjyzM/

将B的高度设置为与A相同的高度,然后将图像的顶部边缘设置为容器高度减去图像高度除以2所得的值:

var h   = $('#A').height(),
    img = $('#B').height(h).find('img');

img.css('margin-top', (h-img.height())/2);

小提琴

编辑:

要确保图像已加载,可以使用以下技巧:

$('img', '#B').one('load', function() {
    var h = $('#A').height();

    $('#B').height(h);
    $(this).css('margin-top', ( h - $(this).height() ) / 2);
}).each(function() {
    if(this.complete) $(this).load();
});

再次编辑:

如果您必须等待加载更多内容,请执行以下操作:

$(window).on('load', function() {
    var h   = $('#A').height(),
        img = $('#B').height(h).find('img');

    img.css('margin-top', (h-img.height())/2);
});

http://css-tricks.com/centering-in-the-unknown/

<div class="something-semantic">
   <div class="something-else-semantic">
       Unknown stuff to be centered.
   </div>
</div>

.something-semantic {
   display: table;
   width: 100%;
}
.something-else-semantic {
   display: table-cell;
   text-align: center;
   vertical-align: middle;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM