2013-08-16 41 views
43

我現在使用的是Twitter Bootstrap 3 RC2以及Twitter Bootstrap,它已經進入單獨的存儲庫。我注意到,如果與文本的按鈕圖標不居中很好用:Center Twitter Bootstrap 3按鈕中的圖形標記

enter image description here

的圖標和文字具有相同的底線,但我相信,一個漂亮的按鈕圖標應該以文本爲中心,不應該嗎?任何想法如何實現這一目標?

http://bootply.com/74652

+0

我不能看到你所提供的示例中的字形。你的意思是你想要字形和文字都集中在按鈕中嗎? –

回答

56

移動文本出<span>與glyphicon的增大或減小字體大小和應用vertical-align: middle;<span>

<button class="btn btn-default"> 
    <span class="glyphicon glyphicon-th" style="vertical-align: middle;"></span> Centered 
    </button> 

Demo

這個工作在引導4字體真棒圖標,像這樣

<button class="btn btn-default" style="vertical-align: middle;"> 
    <i class="fa fa-times"></i> Centered 
</button> 
+3

我遇到了一個問題,那裏的按鈕沒有顯示出與輸入組中輸入文本相同的高度。該解決方案解決了該問題,但圖標首先在按鈕上顯示得太低。使用'vertical-align:top'修復了這個問題。 –

+1

注意:vertical-align middle可能並不總是能解決這個問題,尤其是如果你的單詞只有上升('f','t')或下降('g','y','q')單詞的垂直框不會完全與圖標的垂直框的中間對齊。 –

+0

即將走向哈克路線,並使用圖像(* yuck!*)。不知道'vertical-align'屬性可以用於像這樣的字形!謝謝! –

1

.glyphicon-th:before

+0

中間的文字上升,並帶有字形圖標底部邊框。傷心,因爲這對我來說聽起來很合理。 – Mahoni

0
<button class="btn btn-default"> 
      <span class="glyphicon glyphicon-th" style="font-size: 14px;"> </span> 
      <span style="font-size: 17px;">Not Centered</span> 
    </button> 

嘗試vertical-align: middle;請根據您的要求

+0

方式太多css ... @ Russ的答案更實用。 –

+3

「太多的CSS」?那裏只有一處房產。 「第二」跨度只是一個例子。 – losnir

+0

我的意思是用字體大小捆綁圖標很不好。我不知道我在寫下那個較老的評論時我在想什麼:P –

25

套用vertical-align: -{N}px;款式上.glyphicon次來接班N個像素向上/向下。

+7

完美。沒有意識到你可以在這裏指定像素距離。 「中間」並不總是削減它。 –

0

其他方式

<button class="btn default" id="IdBack"> 
    <i class="glyphicon glyphicon-hand-left"></i> 
    <b>Back</b> 
</button> 
1

的方法都沒有上述工作很適合我自己,但材料用display: inline-block; vertical-align: middle一樣。這似乎是關鍵的inline-block

.vcenter * { 
    vertical-align: middle; 
    display: inline-block; 
} 

.btn i { 
    margin-left: 10px; 
    font-size: 20px; 
} 

<div class="vcenter"> 
    <button class="btn btn-default btn-lg"><span>Centered</span><i class="glyphicon glyphicon-ok"></i></button> 
    <button class="btn btn-default"><span>Centered</span><i class="glyphicon glyphicon-ok"></i></button> 
    <button class="btn btn-default btn-sm"><span>Centered</span><i class="glyphicon glyphicon-ok"></i></button> 
</div> 

的活生生的例子見http://www.bootply.com/UbY78zM8pD

1

我設法做到這一點是這樣的:

.glyphicon.center:before { 
    vertical-align: middle; 
} 

,並使用<span class="glyphicon center glyphicon-th"></span>

0

添加特定像素或百分比的邊距。在我的應用程序中,基於該區域的尺寸,此功能非常精美。

CSS:

.someWrapperClass button span { 
    margin-top: 120%; 
} 

HTML:

<div class="someWrapperClass"> 
    <button type="button" ng-click="SomeMethod()"> 
     <span class="glyphicon glyphicon-chevron-left"></span> 
    </button> 
</div> 
3

對於一些垂直對齊可能由於定位不工作:如果你看看.glyphicon類,你會看到它設置爲相對,嘗試將其設置爲'繼承'e。g:

.glyphicon.v-centered { 
    position: inherit; 
    vertical-align: middle; 
} 

這也適用於不在按鈕中的圖標,例如,標籤。

+0

這爲我做了詭計。默認的bootstrap有一個令人討厭的'position-top:1px',我並不是很想惹惱。 – Worthy7

1

問題:雕文圖標在按鈕文本上方太高了2 px。在此使用示例修復它。謝謝(Alastair Maw)。

我設法得到我的工作如下:

HTML

<div class="col-xs-12"> 
    <a title="" class="btn btn-block btn-info oa-btn-spacer_homepage oa-ellipsis" role="button" href="default.aspx?action=page&name=creditcard"> 
     <span class="glyphicon glyphicon-credit-card glyph_Credit"></span> Update Your Credit Card and Billing Information 
    </a> 
</div> 

CSS

#panelTopic .glyph_Credit { 
    vertical-align: middle; 
    display: inline-block; 
    padding-bottom:6px; 
}