css – 在加载图像时保持div高度

前端之家收集整理的这篇文章主要介绍了css – 在加载图像时保持div高度前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_301_1@我在.img容器内有一个正方形的图像.有时,加载图像需要几秒钟,而.img容器崩溃,并且只有在图像加载时才需要完整的高度.但是,我希望在图像加载时保持完整的高度(如图像所在).

我可以通过在img-container类中设置最小高度来轻松完成此任务,但它是一个流畅的网格,图像响应(通知引导程序的img响应帮助器类),这使得很难将最小高度设置为适用于不同屏幕尺寸的值(尽可能使用媒体查询作为最后手段).
通过放置地方图像来解决这个问题,听起来像是一个过度的杀手(特别是在手机上表现明智).此外,不确定先加载什么,占位符图像或实际图像.

  1. <div class="col-xs-12 col-sm-6 col-md-4 col-lg-4">
  2. <div class="card">
  3. <span class="img-container thumbnail clearfix">
  4. <img alt class="pull-left img-responsive" src="http://...">
  5. </span>
  6. <div class="caption">
  7. <a href="http://.." class="card-title lead">
  8. Some text
  9. </a>
  10. </div>
  11. </div>
  12. </div>

解决方法

编辑评论

如果您根本没有指定源代码(甚至不是虚拟的),浏览器甚至不会尝试“猜测”图像的高度,因此它会崩溃.如果你知道图像的比例(在一个正方形图片的情况下显然是1:1),你可以使用下面的技巧来关注空间,并将图像与div缩放.

设置以下CSS:

  1. .test-div-inner {
  2. padding-bottom:100%;
  3. background:#EEE;
  4. height:0;
  5. position:relative;
  6. }
  7. .test-image {
  8. width:100%;
  9. height:100%;
  10. display:block;
  11. position:absolute;
  12. }

然后可以使用以下HTML:

  1. <div class="test-div-inner">
  2. <img class="test-image" src="http://goo.gl/lO9SUU">
  3. </div>

这是工作示例:http://jsfiddle.net/pQ5zh/3/

请注意,小提琴包含另一个div元素,只有当您想要给它所有的填充或边框时才需要这个元素,因为padding-bottom会根据div的宽度来计算填充(以像素为单位),包括这些参数,这不是我们想要实现的效果(图像会比它应该高一点).

对于非正方形图像:

如果您想要更改图片的比例,只需更改容器div的padding-bottom.例如,如果要放置比例为2:1的图像,请将填充更改为50%.为了保持简短:容器div的宽度和填充的比率应该总是等于图像的宽度和高度的比率.

有一个简单的方法来做到这一点,但它只适用于正方形图像.
将图像的宽度(使用CSS)指定为100%.这样浏览器会自动假定图像的高度与宽度相同,并且占据该位置.

http://jsfiddle.net/pQ5zh/2/

  1. .test-image {
  2. width:100%;
  3. }

注意:有一种方法可以实现非正方形图像,但这有点复杂.

编辑:见上文.

猜你在找的CSS相关文章