我现在正在使用 Twitter Bootstrap 3 RC2 以及已移至单独存储库的 Twitter Bootstrap。我注意到,如果在带有文本的按钮中使用该图标,则该图标不会很好地居中:
图标和文本具有相同的底线,但我相信对于一个好看的按钮,图标应该基于文本居中,不是吗?知道如何实现这一目标吗?
我现在正在使用 Twitter Bootstrap 3 RC2 以及已移至单独存储库的 Twitter Bootstrap。我注意到,如果在带有文本的按钮中使用该图标,则该图标不会很好地居中:
图标和文本具有相同的底线,但我相信对于一个好看的按钮,图标应该基于文本居中,不是吗?知道如何实现这一目标吗?
使用字形图标将文本移出<span>
并vertical-align: middle;
应用于<span>
<button class="btn btn-default">
<span class="glyphicon glyphicon-th" style="vertical-align: middle;"></span> Centered
</button>
这适用于带有 Font Awesome 图标的 Bootstrap 4
<button class="btn btn-default" style="vertical-align: middle;">
<i class="fa fa-times"></i> Centered
</button>
在 .glyphicon-th 上应用vertical-align: -{N}px;
样式以向上/向下移动 N 个像素。
对于某些垂直对齐可能由于定位而无法工作:如果您查看 .glyphicon 类,您会看到它设置为相对,请尝试将其设置为“继承”,例如:
.glyphicon.v-centered {
position: inherit;
vertical-align: middle;
}
这也适用于不在按钮中的图标,例如选项卡。
试穿vertical-align: middle;
_.glyphicon-th:before
上面的方法都没有对我自己很好,但是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。
我设法这样做:
.glyphicon.center:before {
vertical-align: middle;
}
并使用<span class="glyphicon center glyphicon-th"></span>
.
问题:字形图标在按钮文本上方高出 2 px。使用此处的示例将其修复如下。谢谢(阿拉斯泰尔·莫)。
我设法让我的工作如下:
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;
}
<button class="btn btn-default">
<span class="glyphicon glyphicon-th" style="font-size: 14px;"> </span>
<span style="font-size: 17px;">Not Centered</span>
</button>
请根据您的要求增加或减少字体大小
另一种方式
<button class="btn default" id="IdBack">
<i class="glyphicon glyphicon-hand-left"></i>
<b>Back</b>
</button>
添加特定像素或百分比的边距。在我的应用程序中,根据区域的尺寸,这工作得很好。
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>