1

我有一个父 div,其中包含一些随机图片,这些图片位于大约 7 个或更多的子 div 中。我的目标是在子 div 随机填充父 div 时扩展父 div。注意子 div 可以是 0 到 10 或更多。我遇到的问题是父 div 没有增长。我尝试使用 css 和 jquery,这就是我到目前为止所拥有的 jquery

var margin = 5;

var blocks = [];
function align() {
$('.block').each(function(i){
    var min = Array.min(blocks);
    var index = $.inArray(min, blocks);
    var posleft = margin+(index*(300+margin));
    $(this).css({
        'left':(posleft+2)+'px',
        'top':min+'px'
    });
    blocks[index] = min+$(this).outerHeight()+margin;
}); 
}

function divlayOut() {
blocks = [];
for(var i=0;i<3;i++)
{
    blocks.push(margin);
}
align();
}

Array.min = function(array) {
return Math.min.apply(Math, array);
}; 

html

<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.0/jquery.min.js"></script>
<style type="text/css">
.block{
width: 250px;
float:left; 
position:absolute;
}
.parent{
width: 800px; 
float:left; 
padding:10px 0px 0px 10px;
position:relative; 
}
</style>

</head>
<body onload="align();">
<div class="parent">
<div class="block">pic1 size H 100 x W 80</div>
<div class="block">pic1 size H 80 x W 800</div>
<div class="block">pic1 size H 300 x W 100</div>
<div class="block">pic1 size H 110 x W 90</div>
</div>

希望下面的图片有助于清楚我的目标是什么

在此处输入图像描述

4

3 回答 3

0

因为子块是绝对定位的,所以父块永远不会扩展。您可以使用 Jquery 手动计算父块的高度(使用 child_block_height、每行块和 block_width 参数),或者您可以使用 float:left 属性作为子块(非绝对定位)。

另一种方法是使用 inline-block 元素:http ://blog.mozilla.org/webdev/2009/02/20/cross-browser-inline-block/

我通常使用以下方式:

<style>
  .parent {
    overflow:hidden;
    *height:1%;
  }
  .block {
    float:left;
    width:100px;
    height:100px;
  }
</style>
<div class="parent">
  <div class="block"></div>
  <div class="block"></div>
</div>
于 2012-05-26T15:05:35.870 回答
0

你在浮动你的照片,对吧?阅读:http ://www.quirksmode.org/css/clearing.html

花车使他们的父母“忘记了元素”,因此没有扩大。

总结:添加overflow: auto;到父级,如下所示:

.parent {overflow: auto;}
于 2012-05-26T15:01:18.750 回答
0

子 div是否需要绝对定位?

看看这个使用float:left和 cssclearfix技巧的小提琴。

http://jsfiddle.net/5FXs2/

于 2012-05-26T16:59:10.823 回答