2013-10-02 50 views
11

我想用無線電input字段(http://getbootstrap.com/javascript/#buttons-examples)對原始Bootstrap的btn-group-justified進行樣式設計。樣式Bootstrap的btn羣對齊,添加邊距和垂直尺寸

原來的風格是這樣的:
enter image description here

但我想使每個按鈕方形按鈕,讓他們相互之間的所有一些空白。事情是這樣的:
enter image description here

我是從自舉的例子

[data-toggle="buttons"] .btn>input[type="radio"] { 
 
    display: none; 
 
} 
 

 
.category-select .btn-container { 
 
    position: relative; 
 
    width: 19%; 
 
    padding-bottom: 19%; 
 
    float: left; 
 
    height: 0; 
 
    margin: 1%; 
 
    -moz-box-sizing: border-box; 
 
    box-sizing: border-box; 
 
} 
 

 
.btn-container .btn, 
 
.btn-container .btn input { 
 
    max-width: 100%; 
 
}
<div class="btn-group-justified category-select" data-toggle="buttons"> 
 
    <div class="btn-container"> 
 
    <label class="btn category category-one"> 
 
      <input type="radio" name="options" id="option1"> One 
 
     </label> 
 
    </div> 
 
    <div class="btn-container"> 
 
    <label class="btn category category-two"> 
 
      <input type="radio" name="options" id="option2"> Two 
 
     </label> 
 
    </div> 
 
    <div class="btn-container"> 
 
    <label class="btn category category-three"> 
 
      <input type="radio" name="options" id="option3"> Three 
 
     </label> 
 
    </div> 
 
    <div class="btn-container"> 
 
    <label class="btn category category-four"> 
 
      <input type="radio" name="options" id="option4"> Four 
 
     </label> 
 
    </div> 
 
    <div class="btn-container"> 
 
    <label class="btn category category-five"> 
 
      <input type="radio" name="options" id="option5"> Five 
 
     </label> 
 
    </div> 
 
</div>

但當然,我想這個CSS不樣式我的按鈕有點修改HTML標記嘗試...
我想要實現的功能是有5個按鈕,水平對齊,響應式(在所有瀏覽器尺寸中呈方形),並像一個無線電按鈕組。

+1

你是什麼意思,它不工作'按預期'?你應用的樣式不是很好看,還是沒有正確覆蓋引導樣式?你是否只需要正確的CSS來覆蓋引導樣式並使其看起來像你的圖片? – DigTheDoug

+0

我的風格確實覆蓋了Bootstrap的默認設置,但它們看起來不太好:)我需要更正的CSS,這會使單選按鈕看起來平直並帶有邊距...現在嘗試使用Bass Jobsen的解決方案... – errata

回答

21

HTML

<div class="container"> 
<div class="btn-group blocks" data-toggle="buttons"> 
    <label class="btn btn-primary"> 
    <input type="radio" name="options" id="option1"> Option 1 
    </label> 
    <label class="btn btn-primary"> 
    <input type="radio" name="options" id="option2"> Option 2 
    </label> 
    <label class="btn btn-primary"> 
    <input type="radio" name="options" id="option3"> Option 3 
    </label> 
</div> 

CSS

.blocks .btn-primary 
{ 
    padding: 24px 12px; 
    margin: 0 5px; 
    border-radius: 0; 
} 

意志的樣子:

enter image description here

如果我申請BTN-組對齊類,而不是僅僅BTN-羣體,他們 成爲合理的,但仍然不是方方正正的,他們也有他們之間的保證金

我不認爲btn-group-justified類將無意使用btn-group。儘管在不使用btn-group時似乎沒有什麼區別。

btn-group-justified將顯示器設置爲表格。要添加兩種細胞之間的保證金,你需要border-spacingmargin代替(參見:Why is a div with "display: table-cell;" not affected by margin?

現在你有HTML

<div class="container"> 
<div class="btn-group btn-group-justified blocks" data-toggle="buttons"> 
    <label class="btn btn-primary"> 
    <input type="radio" name="options" id="option1"> Option 1 
    </label> 
    <label class="btn btn-primary"> 
    <input type="radio" name="options" id="option2"> Option 2 
    </label> 
    <label class="btn btn-primary"> 
    <input type="radio" name="options" id="option3"> Option 3 
    </label> 
</div> 

CSS

.blocks .btn-primary 
{ 
    padding: 24px 12px; 
    border-radius: 0; 

} 
.blocks {border-spacing:5px;} 

哪將如下所示:

enter image description here

請注意你有矩形而不是正方形。 btn-group-justified將該組的總數設置爲其父項的100%。要製作正方形,您需要使用jQuery根據按鈕的(內部)寬度設置高度。(見:CSS scale height to match width - possibly with a formfactor

$(".btn-group-justified.blocks .btn").height($(".btn-group-justified.blocks .btn").innerWidth()); 
$(window).resize(function(){ $(".btn-group-justified.blocks .btn").height($(".btn-group-justified.blocks .btn").innerWidth()); }); 
+0

嗯, t使對齊的按鈕組,也不會讓我的按鈕方形,尤其是當一個按鈕有更多的文字在其中... – errata

+0

如果我應用'btn-group-justified'類而不是'btn-group',他們成爲正當的,但仍然不是方形的,他們之間也沒有餘地。 – errata

+0

好的,謝謝你的幫忙!我想我只能用CSS解決這個問題,但這也是一個很好的解決方案。不過,我想我會嘗試幾個不同的僅限於CSS的選項來實現我所需要的功能...雖然會接受您的答案=) – errata