按钮中心CSS


85

通常的CSS居中问题,对我不起作用,问题是我不知道最终的宽度px

我对整个导航有一个div,然后在其中的每个按钮都使用了div,当有多个按钮时,它们将不再居中。:(

的CSS

.nav{
    margin-top:167px;
    width:1024px;
    height:34px;
}

.nav_button{
    height:34px;
    margin:0 auto;
    margin-right:10px;
    float:left;
}

的HTML

<div class="nav">
        <div class="nav_button">
            <div class="b_left"></div>
            <div class="b_middle">Home</div>
            <div class="b_right"></div>

        </div>
        <div class="nav_button">
            <div class="b_left"></div>
            <div class="b_middle">Contact Us</div>
            <div class="b_right"></div>

        </div>
</div>

任何帮助将不胜感激。谢谢


结果

如果宽度未知,我确实找到了一种将按钮居中的方法,虽然不完全满意,但没关系,它可以工作:D

最好的方法是放在桌子上

<table class="nav" align="center">
    <tr>
      <td>
        <div class="nav_button">
            <div class="b_left"></div>
            <div class="b_middle">Home</div>
            <div class="b_right"></div>
        </div>

        <div class="nav_button">
            <div class="b_left"></div>
            <div class="b_middle">Contact Us</div>
            <div class="b_right"></div>
        </div>
      </td>
    </tr>
  </table>

Answers:


201

我意识到这是一个非常老的问题,但是今天我偶然发现了这个问题,并且可以使用

<div style="text-align:center;">
    <button>button1</button>
    <button>button2</button>
</div>

干杯,马克


请注意,在此元素附近具有左右浮动风格的其他元素可能会使它看起来偏离中心。
shlgug

1
我相信您是对的,但是有没有理由不做呢<input class="btn btn-primary" style="text-align:center;display:block;" type="submit" value="{% trans 'ButtonPurpose' %}" />
RobotHumans

26

考虑将其添加到您的CSS中以解决问题:

button {
    margin: 0 auto;
    display: block;
}

4
最佳答案。没有外部容器,(可能)没有缺点。
KonradGałęzowski19年


10

问题出在以下CSS行上.nav_button

margin: 0 auto;

仅当您有一个按钮时,这才起作用,这就是为什么当有多个nav_buttondiv时它们偏离中心的原因。

如果您希望所有按钮居中,请将嵌套nav_buttons在另一个div中:

<div class="nav">
    <div class="centerButtons">
        <div class="nav_button">
            <div class="b_left"></div>
            <div class="b_middle">Home</div>
            <div class="b_right"></div>
        </div>
        <div class="nav_button">
            <div class="b_left"></div>
            <div class="b_middle">Contact Us</div>
            <div class="b_right"></div>
        </div>
    </div>
</div>

并以这种方式设置样式:

.nav{
    margin-top:167px;
    width:1024px;
    height:34px;
}

/* Centers the div that nests the nav_buttons */
.centerButtons {
    margin: 0 auto;
    float: left;
} 

.nav_button{
    height:34px;
    margin-right:10px;
    float: left;
}

2
谢谢你的贴文,不幸的是,它也不起作用,仍然在左边。
Stevanicus's

是的,我才意识到。这是因为.centerButtons是一个块元素,它占用了.nav中的整个空间,从而使margin属性无效。我也尝试通过浮动.centerButtons来修复它,但是没有运气。
Espresso 2010年

是的,我知道它很棘手,我很生气,因为我以前做过,但是不记得怎么了:)....有什么想法吗?
Stevanicus's


-1

当其他一切都失败的时候

<center> content </center>

我知道它不再“符合标准”,但是如果它起作用了


12
该答案不会为其他答案添加任何内容。<center>在HTML4中已弃用,甚至在HTML5中也不被支持,这意味着如果使用HTML5,则可能无法使用。
Magnilex

1
我只能在无法进行其他任何操作的情况下使用它。我在有html5的页面中使用了它,但不喜欢使用。我经历了并用我所能代替的东西<div align="center">button</div>
ott

不推荐使用的标签,使用它是一种不好的做法
Sunchock
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.