在不知道背景高度的情况下设置背景高度

时间:2015-12-25 16:12:16

标签: jquery html css height masonry

我有很多相同的div。每个人都有自己的背景。

$(".grid-con").css({"background-size": "100% auto", "background-repeat": "no-repeat", "background-position": "50% 50%"});

我正在使用jQuery将属性设置为background:

.masonry { float:left; width:950px; margin-top:20px; }
.grid { width:100%;  }
.grid-item { width:217px; margin:0 20px 20px 0; }
.grid-con { width:100%; height:auto; }

和css的额外属性:

.grid-con

如果我将固定高度设置为width:100%,那么一切正常。

问题:

如何在没有固定高度的情况下使其工作? height:auto效果很好,但cat "inputfile.txt" | sort | uniq -c 没有。我需要显示所有需要适合未知高度的固定宽度的背景。

1 个答案:

答案 0 :(得分:1)

我不确定this demo的结果是否符合您的期望,但这是代码:

$('.grid-con[style*=url]').each(function(){
  var $this = $(this),
    img = new Image(),
    src = $this.attr('style').match(/url\(([^)]+)/);
  if ( src && src.length >= 1 ) {
    img.src = src[1];
    $this.height(img.height);
  }
});

如果您不支持IE8或更早版本(ref),也可以使用图片的naturalHeight