我正在尝试创建一个可以使用isotope或某些类似插件进行过滤的布局,但是我也希望能够使用Bootstrap's card-decks来确保每张卡具有相同的高度。如果每张卡及其部分的尺寸都相同,我会敞开心different。
这是一支笔:https://codepen.io/anon/pen/GPLqZm
<div class="container-fluid">
<div class="row">
<div class="col-12">
<div class="card-deck p-0" id="isotope">
<div class="card col-3 p-0 a b">
<img class="card-img-top" src="https://via.placeholder.com/150" alt="Card image cap">
<div class="card-body">
<h5 class="card-title">Card title</h5>
<p class="card-text">This is a longer card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.</p>
<p class="card-text"><small class="text-muted">Last updated 3 mins ago</small></p>
</div>
</div>
<div class="card col-3 p-0 a c">
<img class="card-img-top" src="https://via.placeholder.com/150" alt="Card image cap">
<div class="card-body">
<h5 class="card-title">Card title</h5>
<p class="card-text">This card has supporting text below as a natural lead-in to additional content.</p>
<p class="card-text"><small class="text-muted">Last updated 3 mins ago</small></p>
</div>
</div>
<div class="card col-3 p-0 b c">
<img class="card-img-top" src="https://via.placeholder.com/150" alt="Card image cap">
<div class="card-body">
<h5 class="card-title">Card title</h5>
<p class="card-text">This is a wider card with supporting text below as a natural lead-in to additional content. This card has even longer content than the first to show that equal height action.</p>
<p class="card-text"><small class="text-muted">Last updated 3 mins ago</small></p>
</div>
</div>
<div class="card col-3 p-0 b d">
<img class="card-img-top" src="https://via.placeholder.com/150" alt="Card image cap">
<div class="card-body">
<h5 class="card-title">Card title</h5>
<p class="card-text">This is a wider card with supporting text below as a natural lead-in to additional content. This card has even longer content than the first to show that equal height action.</p>
<p class="card-text"><small class="text-muted">Last updated 3 mins ago</small></p>
</div>
</div>
</div>
</div>
</div>
</div>
答案 0 :(得分:1)
好吧,这不是内置的,但可以用来解决问题,而不是与两个不同的JS库争斗。
使用此自定义高度均衡器可以解决您的问题。
使用您的示例的Codepen:https://codepen.io/brooksrelyt/pen/LMvXox
JS:
$(window).load(function() {
equalheight('.card');
});
equalheight = function(container){
var currentTallest = 0,
currentRowStart = 0,
rowDivs = new Array(),
$el,
topPosition = 0;
$(container).each(function() {
$el = $(this);
$($el).height('auto')
topPostion = $el.position().top;
if (currentRowStart != topPostion) {
for (currentDiv = 0 ; currentDiv < rowDivs.length ; currentDiv++) {
rowDivs[currentDiv].height(currentTallest);
}
rowDivs.length = 0; // empty the array
currentRowStart = topPostion;
currentTallest = $el.height();
rowDivs.push($el);
} else {
rowDivs.push($el);
currentTallest = (currentTallest < $el.height()) ? ($el.height()) : (currentTallest);
}
for (currentDiv = 0 ; currentDiv < rowDivs.length ; currentDiv++) {
rowDivs[currentDiv].height(currentTallest);
}
});
}
$(window).resize(function(){
equalheight('.card');
});