如何检测 Bootstrap列是否为空,以便应用偏移量类将其余非空列放在同一行的中心?
我的Bootstrap网格设置为 .col-md-4 .col-md-4 .col-md-4 。这些列无法更改,因此我需要使用JQuery方法。
我当前的代码检测一列是否为空,并根据有多少列为空,并添加偏移量类以使非空列居中对齐。这就是我想要的:
[...] [...] [...]
[...] [...]
这是我的代码,尽管如果两行或更多行的列为空,这是不正确的,那么将应用错误的偏移量,并且会出现如下所示的效果:
[...] [...]
[...] [...]
当前的jQuery代码
var count = 0;
$('.section_2 .col-md-4').each(function()
{
if( !$.trim( $(this).html() ).length )
{
count++;
if (count == 1)
{
$(this).parent().find(".col-md-4:first-of-type")
.addClass("col-md-offset-2");
}
else
{
$(this).parent().find(".col-md-4:first-of-type")
.addClass("col-md-offset-4")
.removeClass("col-md-offset-2");
}
}
});
jsfiddle上的示例:
答案 0 :(得分:1)
有关此问题的一些注意事项:
1)空的Bootstrap网格列仍具有正的非零宽度,因此我们必须在其为空时将其隐藏。
2)您可以使用以下简化的条件检查元素是否为空:!$(this).html().trim()
现在,这是我解决您的问题的方法:
$('.row .col-md-4').each(function()
{
if (!$(this).html().trim())
{
$(this).hide();
var first = $(this).parent().find(".col-md-4:first-of-type");
if (first.hasClass("col-md-offset-2"))
first.removeClass("col-md-offset-2").addClass("col-md-offset-4");
else
first.addClass("col-md-offset-2");
}
});
.col-md-4
{
/* Helps to visualize the layout */
border: 1px solid red;
}
.box
{
height: 75px;
background: #ddd;
width: 100%;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<!-- Optional theme -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous">
<!-- Latest compiled and minified JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
<div class="section_2">
<div class="container">
<!-- ROW 1 -->
<div class="row">
<div class="col-md-4">
<div class="box">Box</div>
</div>
<div class="col-md-4">
<div class="box">Box</div>
</div>
<div class="col-md-4">
<div class="box">Box</div>
</div>
</div>
<!-- ROW 2 -->
<div class="row">
<div class="col-md-4">
<div class="box">Box</div>
</div>
<div class="col-md-4">
</div>
<div class="col-md-4">
</div>
</div>
</div>
</div>
<div class="section_2">
<div class="container">
<!-- ROW 3 -->
<div class="row">
<div class="col-md-4">
<div class="box">Box</div>
</div>
<div class="col-md-4">
<div class="box">Box</div>
</div>
<div class="col-md-4">
</div>
</div>
<!-- ROW 4 -->
<div class="row">
<div class="col-md-4">
<div class="box">Box</div>
</div>
<div class="col-md-4">
<div class="box">Box</div>
</div>
<div class="col-md-4">
</div>
</div>
</div>
</div>