我有一个父div包含一些随机图片,这些图片在7个或更多的子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>
希望下面的图片有助于明确我的目标
答案 0 :(得分:0)
你是浮动你的照片,对吗?阅读:http://www.quirksmode.org/css/clearing.html
花车让他们的父母“忘记了元素”,从而没有扩大。
总结:将overflow: auto;
添加到父级,如下所示:
.parent {overflow: auto;}
答案 1 :(得分:0)
因为子块是绝对定位的,所以父块永远不会扩展。您可以使用Jquery手动计算父块的高度(使用child_block_height,每行块数和block_width参数),或者您可以对子块使用float:left属性(非绝对定位)。
另一种方法是使用内联块元素: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>
答案 2 :(得分:0)