【问题标题】:Bootstrap: center any spanBootstrap:居中任意跨度
【发布时间】:2013-04-22 17:31:28
【问题描述】:

我在使用类将span 居中时遇到问题:

.center {
    float:none;
    margin-left: auto;
    margin-right: auto;
}

<div class="row-fluid">
    <div class="center span5">
    <button></button>
    </div>
</div>

这不起作用,显然它被 bootstrap row-* CSS 覆盖。但是,如果我直接在 div 中包含相同的样式 (style="..."),它会起作用。

我认为它不起作用,因为它不知道宽度,所以我尝试使用偏移量,但是当按钮没有居中以及使用 .CSS 时。我无法指定宽度,因为我的 button 宽度是由外部 JavaScript 设置的。

在这种情况下如何使 .center 类工作?

【问题讨论】:

    标签: css twitter-bootstrap html alignment


    【解决方案1】:

    从 Bootstrap 2.3.0 开始,您可以使用内置类 .text-center

    <div class="row-fluid">
    
        <div class="span12 text-center">
    
        My content to be centered here
    
        </div>
    
    </div>
    

    它对我来说非常有效...... :)

    【讨论】:

    • 谢谢!这绝对是最干净的方法。
    【解决方案2】:

    您可以将其居中:

    .center {
       margin: 0 auto !important;
       float: none !important;
    }
    

    JSFiddle

    或者你可以使用:

    .row-fluid [class*="span"].center, .center {
        margin: 0 auto;
        float: none;
    }
    

    我倾向于避免使用!important,因为你永远不知道它何时可能与其他一些 CSS 不同。有趣的是,上述影响在 .row 和 .row-fluid 上都不同。

    【讨论】:

    • 请不要使用!important。这是一把大锤。如果你使用它然后想要覆盖它,那么你就不能把东西加倍!重要,所以你又遇到了同样的问题……只是到处都有 !important。
    • 同意。起初我没有注意到它是row-fluid,并在我最初的调整中尝试了row(参见unnumbered JSFiddle)。这是我的第一次调整,让它工作,然后我让它在没有它的情况下工作。
    • 与第二个解决方案配合得很好,很好!
    【解决方案3】:

    使用自动边距方法时,必须为元素定义宽度。可以是任何单位,但必须定义:

    .center {
        width: 50%;
        margin-left: auto;
        margin-right: auto;
    }
    

    :)

    【讨论】:

    • 我添加了宽度,但不知何故 span5 仍然没有居中,它的大小是正确的,当我检查元素时我看到它但它确实没有居中:/。
    【解决方案4】:
    .class {
        margin:auto; 
        display:table;
    }
    

    不知道为什么,但它总是像魅力一样发挥作用。

    【讨论】:

      【解决方案5】:

      我认为它不起作用,因为它不知道宽度

      这不可能是真的,因为:

      如果我直接在 div 中包含相同的样式 (style="...") 它可以工作

      …如果它在一种情况下不知道宽度,那么在另一种情况下它也不会。

      如果使用style 属性有效,那么这表明问题是一种特殊性。编写规则集的选择器,使specificity 大于覆盖这些属性的任何规则的选择器(或者使特异性相等,但规则集稍后出现在样式表中)。

      您可以使用浏览器的开发者工具来查看哪些规则被应用到元素上,这样您就可以看到您必须比选择器更具体的选择器。

      【讨论】:

      • 确实,感谢您的解释!我接受了 pickypg 的回答,因为他提供了修复的代码示例。
      【解决方案6】:

      对于 Bootstrap 4。说家长div你可以输入这个:

      class='... justify-content-center text-center m-auto'
      

      justify-content 用于普通情况

      【讨论】:

      • m-auto 对我来说不是必需的
      猜你喜欢
      • 1970-01-01
      • 2014-02-18
      • 1970-01-01
      • 2021-06-07
      • 2012-05-26
      • 2015-05-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多