Düğme Merkezi CSS


86

Genel CSS merkezleme sorunu, benim için çalışmıyor, sorun şu ki bitmiş genişlik pikselini bilmiyorum

Tüm gezinti için bir div'im var ve sonra içindeki her düğme, birden fazla düğme olduğunda artık ortalamıyorlar. :(

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>

Herhangi bir yardım çok takdir edilecektir. Teşekkürler


Sonuç

Genişlik bilinmiyorsa, düğmeleri ortalamanın bir yolunu buldum, tamamen mutlu değil ama önemli değil, işe yarıyor: D

En iyi yol bir masaya koymaktır

<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>

Yanıtlar:


202

Bunun çok eski bir soru olduğunun farkındayım, ancak bugün bu soruna rastladım ve onunla birlikte çalıştım

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

Şerefe, Mark


Bu öğenin yanında sağa / sola kayma stiline sahip farklı bir öğenin, bunun merkezin dışında görünmesine neden olabileceğini unutmayın.
shlgug

1
<input class="btn btn-primary" style="text-align:center;display:block;" type="submit" value="{% trans 'ButtonPurpose' %}" />
Haklı olduğuna inanıyorum

30

Sorunu çözmek için bunu CSS'nize eklemeyi düşünün:

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

4
En iyi cevap. Dış kap yok, (muhtemelen) dezavantaj yok.
Konrad Gałęzowski

23

Başka bir güzel seçenek de kullanmaktır:

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

O çalışıyor (ve mantıklı mekes) düğmesi yalnızca bir iç biriyse, Malzeme UI için<Grid item>...</Grid>
Juan Salvador

Oh güzel fikir :)
Martin Volek

10

Sorun şu CSS satırında .nav_button:

margin: 0 auto;

Bu, yalnızca bir düğmeniz varsa işe yarar, bu yüzden birden fazla nav_buttondiv olduğunda merkezden kaymışlardır.

Tüm düğmelerinizin ortalanmış olmasını istiyorsanız nav_buttons, başka bir div öğesinin içine yerleştirin:

<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>

Ve bu şekilde şekillendirin:

.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
gönderiniz için teşekkürler, maalesef çalışmıyor, hala hepsi solda.
Stevanicus

Evet, bunu yeni fark ettim. Bunun nedeni, .centerButtons öğesinin bir blok öğesi olması ve .nav'daki tüm alanı kaplaması, marj özelliklerini işe yaramaz hale getirmesidir. Yüzen .centerButtons ile de düzeltmeye çalıştım, ama şans yok.
Espresso

evet zor olanı biliyorum, beni rahatsız ediyor çünkü daha önce yaptım ama nasıl olduğunu hatırlayamıyorum :) herhangi bir fikir?
Stevanicus

1

Sorunu çözmek için bunu CSS'nize eklemeyi düşünün:

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

-1

her şey başarısız olduğunda ben sadece

<center> content </center>

Artık "standartlara uygun" olmadığını biliyorum, ancak işe yararsa işe yarıyor


12
Bu cevap diğer cevaplara hiçbir şey katmaz. <center>HTML4'te kullanımdan kaldırıldı ve HTML5'te bile desteklenmiyor; bu, HTML5 kullanılırsa muhtemelen çalışmayacağı anlamına gelir.
Magnilex

1
Sadece çalışacak başka bir şey bulamazsam kullanırım. Ben html5'in olduğu sayfalarda kullandım ama tercih etmem. <div align="center">button</div>
Yapabileceklerimi

Kullanımdan kaldırılan etiket, onu kullanmak kötü bir uygulama
Sunchock
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.