【问题标题】:No Font-Awesome icons on buttons will vertical-align按钮上的 Font-Awesome 图标不会垂直对齐
【发布时间】:2015-07-28 12:43:17
【问题描述】:

所以我有这个带有一些按钮的应用程序,上面有一些 Font Awesome 图标。这些按钮位于 Bootcards 标头内。

<button class="btn btn-primary pull-right ">  
    <i class="fa fa-pencil" ></i>
</button>

现在的问题是它看起来像这样:

然后我有另一个带文字的,看起来也不正确:

这个有以下 HTML:

<button class="btn btn-success" onclick="publishMessage()">
    <i class="fa fa-check"></i>
    Publiser
</button>

现在,经过一番谷歌搜索后,我发现 vertical-align 应该可以帮助我,但它根本没有任何作用。我发现的所有方法都只是在图标周围创建填充或边距,以便它仍然触及按钮的底部,但在更大的按钮上。

由于我对这种语言不太熟悉,我想知道为什么只添加一些像 .fa {vertical-align: middle;} 这样的 CSS(或使用我自己的类名)不起作用,我需要做什么。

更新:这是JSFiddle

【问题讨论】:

  • 你能创建小提琴或任何演示吗?
  • 您有任何代码覆盖它。似乎是移除了填充底部或类似的东西。使用纯引导按钮,您的图标将是完美的。您可以解决方法:bootply.com 检查我说的。我们需要查看您的更多代码以帮助您
  • 您可能应该定义一个line-height。请问能提供demo吗?
  • 我认为您的按钮的某些容器正在覆盖按钮的填充属性,因为它实际上是这样的:JSFiddle,您能否提供一个小提琴链接以及所有代码我们可以调试它
  • 检查元素,很容易看到它正在做的 ios 和 android 样式表。

标签: html css twitter-bootstrap font-awesome


【解决方案1】:

解决方案很简单。你应该改变

<i class="fa fa-check"></i>

<span class="fa fa-check"></span>

然后简单地使跨度高度等于他的容器。 并利用vertical-align 属性。 跨度的CSS

height: inherit;
vertical-align: inherit;

更新: http://jsfiddle.net/uz3tu23s/4/

【讨论】:

  • 谢谢,这垂直对齐图标,这是我问的。作为参考,移除 iOS-Android-versions 的 Bootcards 也可以解决这个问题。
  • 为什么要从 i 改为 span?
  • @RemiSture 的区别在于 原本是为斜体字体设计的,而 是为了封装一段内容而不立即更改任何 css 规则.换句话说, 可用于您想要应用的任何自定义 css 操作。因此,通常我使用 span 而不是 ,这是解决此问题的快速简便方法。
  • 好吧,我只是想知道,因为 Font Awesome 建议使用以下标记:´´跨度>
  • @RemiSture Font Awesome 不会“建议”在任何地方使用 看看这里:fontawesome.io/examples 并阅读基本图标部分的段落。它说:“Font Awesome 旨在与内联元素一起使用(为了简洁起见,我们喜欢 标签,但使用 在语义上更正确)。” :)
【解决方案2】:

我开发了这个 jquery 代码来根据设备的类型一次使用一个引导卡样式表,这样你就不会错过你需要的引导卡样式,也不会得到 iOS 的样式或用于桌面的 android 之类的。

另外,不要忘记包含引导 css 文件。

var isMobile = {
    Android: function() {
        if(navigator.userAgent.toLowerCase().search("android") > -1){
            return 'Android';
        }
    },
    iOS: function() {
        if(navigator.userAgent.toLowerCase().search("iphone") > -1 || navigator.userAgent.toLowerCase().search("ipad") > -1 ||navigator.userAgent.toLowerCase().search("ipod") > -1){
            return 'iOS';
        }
    },
    desktop: function(){
        if(!(isMobile.Android()) && !(isMobile.iOS())){
            return 'Desktop';
        }
    },
    any: function() {
        return (isMobile.Android() || isMobile.iOS() || isMobile.desktop());
    }
};

var op = isMobile.any();
console.log(op);

    var ios="<link rel='stylesheet' href='cdnjs.cloudflare.com/ajax/libs/bootcards/1.0.0/css/bootcards-ios.min.css'>";
    var and="<link rel='stylesheet' href='//cdnjs.cloudflare.com/ajax/libs/bootcards/1.0.0/css/bootcards-android.min.css'>";
   var desk="<link rel='stylesheet' href='//cdnjs.cloudflare.com/ajax/libs/bootcards/1.0.0/css/bootcards-desktop.min.css'>";
if(op == "iOS"){
    $(ios).appendTo("head");
}else if(op == "Android"){
    $(and).appendTo("head");
}else{
    $(desk).appendTo("head");
}

这是JSFiddle

我知道你得到了你的答案,但我认为与你分享这个很好。

【讨论】:

  • 看起来它至少可以在桌面上运行。在这一轮的其他两个平台上我真的不需要它,但如果我们需要为这些平台开发一些东西,我会记住这一点。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-06-28
  • 1970-01-01
  • 2015-04-20
  • 2013-07-02
  • 1970-01-01
  • 2021-04-27
相关资源
最近更新 更多