引導具有內置的功能來實現你之後的佈局,而不會引入額外的CSS規則。只需使用.col-md-offset-*
類:
使用.col-md-offset-*
類將列向右移。這些類通過*列增加列的左邊距。例如,.col-md-offset-4
移動.col-md-4
超過四列。
您的佈局最終將尋找與此類似:
.show-grid {
margin-bottom: 15px;
}
.your-custom-div {
height: 50px;
background-color: green;
color: white;
text-align: center;
}
<!DOCTYPE html>
<html lang="en">
<head>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet" />
</head>
<body>
<div class="container">
<div class="row show-grid">
<div class="col-md-4">
<div class="your-custom-div">
.col-md-4
</div>
</div>
<div class="col-md-4">
<div class="your-custom-div">
.col-md-4
</div>
</div>
<div class="col-md-4">
<div class="your-custom-div">
.col-md-4
</div>
</div>
<div class="clearfix visible-md"></div>
</div>
<div class="row show-grid">
<div class="col-md-4 col-md-offset-4">
<div class="your-custom-div">
.col-md-4 .col-md-offset-4
</div>
</div>
<div class="clearfix visible-md"></div>
</div>
</div>
</body>
</html>
編輯#1:對於你不知道有多少列,你會從你的數據庫中提取用於要求第二行,另一個選項是在HTML輸出期間使用條件,如果集合中項目數的模數除以列數等於1,則還輸出.col-md-offset-4
類,或者proce否則照常編輯。在使用Razor的ASP.NET中,這看起來是這樣的(下面的例子保持簡單,目的是爲了演示所提出的邏輯,它可以被重構爲它自己的HTML助手類,同時也考慮了其他列大小):
@{
bool lastItemShouldBeCentered = Foo.Count % 3 == 1;
for (int i = 0; i < Foo.Count; i++)
{
bool isLastItem = i == Foo.Count - 1;
if (isLastItem && lastItemShouldBeCentered)
{
<div class="col-md-4 col-md-offset-4">
// Foo[i] content here
</div>
}
else
{
<div class="col-md-4">
// Foo[i] content here
</div>
}
}
}
編輯#2:看起來我誤解了你的要求。對於1個剩餘色譜柱,此解決方案就足夠了。爲了更多,我會與@穆罕默德的回答。
請提供一個jsFiddle –
偏移解決方案似乎工作.. http://codeply.com/go/PBfCft4vEt – ZimSystem
@Skelly是的,它的工作原理,如果我知道有正好四個容器,因爲我可以手動設置偏移量第四個容器。對我來說,這是行不通的,因爲我的網站是動態生成的,我不知道有多少個容器。 – Aaronmacaron