我有一个固定大小为600px的div容器。 我想在一行中填写一些div (数字是动态值)。
这样的事情:
|---------------------------container-------------------------|
|----box1----||----box2-----||-----box3-----||------box4------|
所有方框必须具有相同的尺寸
答案 0 :(得分:6)
基于表格布局的答案(纯CSS): http://jsfiddle.net/QheN7/1/
HTML:
<div class="container">
<div class="child"> </div>
<div class="child"> </div>
<div class="child"> </div>
<div class="child"> </div>
<div class="child"> </div>
<div class="child"> </div>
</div>
<button>Add div</button>
CSS:
.container{
display:table;
border:1px solid #000;
width:600px;
height:20px;
}
.child{
display:table-cell;
height:20px;
}
.child:nth-child(odd){
background-color:#aaa;
}
.child:nth-child(even){
background-color:#666;
}
我只使用JS添加更多div,否则不需要:
$('button').on('click', function(){
var newChild = $('.container').find('.child').first();
newChild.clone().appendTo($('.container'));
});
答案 1 :(得分:1)
我不确定这是不是你想要的..你需要javascript(我知道你没有在这里标记): http://jsfiddle.net/QheN7/
截屏:
CSS:
.container{
overflow:auto;
border:1px solid #000;
width:600px;
}
.child{
float:left;
height:20px;
}
.child:nth-child(odd){
background-color:#aaa;
}
.child:nth-child(even){
background-color:#666;
}
HTML:
<div class="container">
<div class="child"></div>
<div class="child"></div>
<div class="child"></div>
<div class="child"></div>
<div class="child"></div>
<div class="child"></div>
</div>
<button>Add div</button>
JS:
$(function(){
function setWidth(){
var container = $('.container'),
children = $('.child'),
containerWidth = container.width(),
noOfChildren = children.length;
children.width(containerWidth/noOfChildren);
}
$('button').on('click', function(){
var newChild = $('.container').find('.child').first();
newChild.clone().appendTo($('.container'));
setWidth();
});
setWidth();
});
答案 2 :(得分:1)
实际上可以用纯CSS解决问题,但它并不适用于所有浏览器。你的问题有点像this一样。我们的想法是根据数字设置div的宽度。
/* one item */
li:nth-child(1):nth-last-child(1) {
width: 100%;
}
/* two items */
li:nth-child(1):nth-last-child(2),
li:nth-child(2):nth-last-child(1) {
width: 50%;
}
/* three items */
li:nth-child(1):nth-last-child(3),
li:nth-child(2):nth-last-child(2),
li:nth-child(3):nth-last-child(1) {
width: 33.3333%;
}