请检查以下代码和问题
your_list = [1, 2, 3, 3, 4]
uniques = [item for item in your_list if your_list.count(item) == 1]

.container_12 {
overflow: hidden;
}
.grid_4 {
margin: 0;
padding: 0;
border: 0;
float: left;
}
.container_12 .grid_4 {
width: 33.333333333333336%;
}

在上面的代码中, grid_4 连续排列3,剩下的将换行到下一行。这些grid_4是动态生成的,甚至可以删除。例如,如果我删除Div 4和Div 5移动到Div 4的位置,如下面的代码
<div class="container_12">
<div class="grid_4">Div 1</div>
<div class="grid_4">Div 2 with extra content</div>
<div class="grid_4">Div 3 with extra content</div>
<div class="grid_4">Div 4</div>
<div class="grid_4">Div 5 with extra content</div>
</div>
这些div具有不同的内容和不同的高度。所以问题是如何保持行高和每行12/4 = 3列?这可以通过jquery为元素设置高度来实现。但是还有其他任何可能的方法来实现这一点,只使用CSS [没有flexbox - 因为移动兼容性]
提前致谢。
答案 0 :(得分:1)
CSS3 Flexbox
就是为此而推出的。它可以处理响应&amp;简化代码和复杂的布局在不使用任何框架的情况下提高可读性。它也适用于所有最新的浏览器,包括IE11,部分支持IE9,IE10。 here is the CanIUse link
您可以通过以下代码轻松实现解决方案:
.container_12 {
display: flex; //initialises flexbox
flex-wrap: wrap; //tells it to wrap overflowing contents
}
.grid_4 {
flex: 0 0 33%;
}
就这么简单。 Codepen here
更好的是,它涵盖了你的动态高度和宽度要求。您还可以浏览flex
property(flex-grow
,flex-shrink
,flex-basis
的简写)以了解有关“展示”div的维度的更多信息
答案 1 :(得分:0)
这是你的答案LIVE FIDDLE只需使用jquery-2.2.4.min.js作为宣传资源并缩短你的css部分并使用这个脚本
var maxHeight = 0;
$(".container_12").each(function() {
if ($(this).height() > maxHeight) {
maxHeight = $(this).height();
}
});
$(".grid_4").height(maxHeight);