ボタンセンターCSS


85

通常のCSSセンタリングの問題は、私には機能しません。問題は、完成した幅のピクセルがわからないことです。

ナビゲーション全体の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>

回答:


201

これは非常に古い質問だと思いますが、今日この問題に遭遇し、問題を解決しました。

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

乾杯、マーク


この要素の近くで右/左にフロートするスタイルを持つ別の要素は、これが中心から外れて見える場合があることに注意してください。
shlgug 2018年

1
私はあなたが正しいと信じていますが、それをしない理由があります<input class="btn btn-primary" style="text-align:center;display:block;" type="submit" value="{% trans 'ButtonPurpose' %}" />
RobotHumans 2018年

26

問題を解決するには、これをCSSに追加することを検討してください。

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

4
ベストアンサー。外部コンテナはなく、(おそらく)欠点もありません。
コンラートGałęzowski

23

もう1つの優れたオプションは、次を使用することです。

width: 40%;
margin-left: 30%;
margin-right: 30%

ボタンは一つだけ内側にある場合は、マテリアルUIの作品(とセンスをmekes)<Grid item>...</Grid>
フアン・サルバドル

いいアイデアです:)
MartinVolek19年

10

問題は、次のCSS行にあり.nav_buttonます。

margin: 0 auto;

これは、ボタンが1つしかない場合にのみ機能します。そのため、複数のdivがある場合はボタンの中心がずれますnav_button

すべてのボタンを中央に配置する場合は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 2010

ええ、私はちょうどそれを実現しました。これは、.centerButtonsがブロック要素であり、.navのスペース全体を占有し、マージンプロパティを役に立たなくするためです。.centerButtonsもフローティングにして修正しようとしましたが、うまくいきませんでした。
エスプレッソ2010

ええ、私はそのトリッキーなものを知っています、私が以前にそれをしたことがあるので私を悩ませますが、どのように覚えていません:)....何かアイデアはありますか?
Stevanicus 2010

1

問題を解決するには、これをCSSに追加することを検討してください。

.btn {
  width: 20%;
  margin-left: 40%;
  margin-right: 30%;
}

-1

他のすべてが失敗したとき私はただ

<center> content </center>

私はそれがもはや「標準に達していない」ことを知っていますが、それが機能すればそれは機能します


12
この回答は他の回答に何も追加しません。<center>HTML4で非推奨になり、HTML5でもサポートされていません。つまり、HTML5を使用すると機能しない可能性があります。
Magnilex 2013

1
他に何も動かせない場合にのみ使用します。私はhtml5があるページでそれを使用しましたが、使用したくないです。私は通り抜けて、私ができることを置き換えました<div align="center">button</div>
ott 2013年

非推奨のタグ、それを使用することは悪い習慣です
Sunchock
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.