jquery – 如何垂直对齐div中的图像与动态高度?

我们拥有的是一个包含用户上传的图像的div.这是代码

HTML

<div class="container_img">
    <img height="120" width="150" src="[image name].jpg">
</div>

CSS:

div.container_img {
    overflow: hidden;
    width: 150px;
    height: 150px;
}

我们的问题是,如果用户上传的图像的高度小于150px,底部空间很大.所以我们要垂直对齐图像,使它看起来不像浮动.

我已经尝试在网上搜索解决方案,但是我找不到与DIV中的动态图像一起使用的解决方案.一些解决方案要求您了解图像的尺寸.

有人有这个问题解决了吗?

解决方法

您需要使用JavaScript / jQuery来检测图像高度. CSS不是动态语言,您无法使用纯CSS检测高度.使用jQuery可以做到

jQuery的

var $img = $('div.container_img img');
var h = $img.height();
$img.css('margin-top',+ h / -2 + "px"); //margin-top should be negative half of image height. This will center the image vertically when combined with position:absolute and top:50%.

CSS

div.container_img {
    position:relative; 
    width: 150px;
    height: 300px;
}

div.container_img img{
    position:absolute;
    top:50%;
}

检查工作示例在http://jsfiddle.net/nQ4uu/2/

相关文章

jQuery插件的种类 1、封装对象方法 这种插件是将对象方法封装起来,用于对通过选择器获取的jQuery对象进...
扩展jQuery插件和方法的作用是非常强大的,它可以节省大量开发时间。 入门 编写一个jQuery插件开始于给...
最近项目中需要实现3D图片层叠旋转木马切换的效果,于是用到了jquery.roundabout.js。 兼容性如图: ht...
一、什么是deferred对象? 开发网站的过程中,我们经常遇到某些耗时很长的javascript操作。其中,既有异...
AMD 模块 AMD(异步模块定义,Asynchronous Module Definition)格式总体的目标是为现在的开发者提供一...