2010-09-01 5 views
39

Usual problem CSS centrowanie, po prostu nie działa dla mnie, problem jest to, że nie wiem, gotowego szerokość pxPrzycisk Centrum CSS

Mam div dla całej NAV a następnie każdy przycisk w środku, że nie centrum już wtedy, gdy jest więcej niż jeden przycisk. :(

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> 

Każda pomoc będzie bardzo mile widziane. Dzięki


Wynik

Jeżeli szerokość jest nieznany, znalazłem sposób ośrodkiem przyciski, nie do końca zadowolony, ale nie robi względu na to, że działa: D

Najlepszym sposobem jest umieszczenie go w tabeli

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

Odpowiedz

113

Zdaję sobie sprawę, że jest to bardzo stare pytanie, ale potknął przez cały ten problem dzisiaj i mam go do pracy z

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

Pozdrawiam, Mark

+0

Pracował jak urok. Kudos @markbaldy – andy4thehuynh

4

problem jest z następującą linią CSS na .nav_button:

margin: 0 auto; 

to będzie działać tylko wtedy, gdy jeden przycisk trzeba było, to dlaczego oni są poza centrum, gdy istnieje więcej niż jeden nav_button DIV.

Jeśli chcesz wszystkie przyciski skupionych gniazdem nav_buttons w innym 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> 

i styl to w ten sposób:

.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; 
} 
+0

dzięki za twój post, niestety nie działa też, nadal wszystko po lewej stronie. – Stevanicus

+0

Tak, właśnie to sobie uświadomiłem. Dzieje się tak, ponieważ .centerButtons jest elementem blokowym i zajmuje całą przestrzeń w .nav, czyniąc właściwości marginesu bezużytecznymi. Próbowałem to naprawić również przez pływające .centerButtons, ale bez powodzenia. – Espresso

+0

tak, wiem, że to jest podstępne, denerwuje mnie, bo zrobiłem to wcześniej, ale nie mogę sobie przypomnieć jak:) .... jakieś pomysły? – Stevanicus

0

gdy wszystko inne zawiedzie Właśnie

<center> content </center> 

wiem, że nie „do normy” więcej, ale jeśli to działa to działa

+5

Ta odpowiedź nie dodaje nic do innych odpowiedzi. '

' było przestarzałe w HTML4 i nie jest nawet obsługiwane w HTML5, co oznacza, że ​​prawdopodobnie nie będzie działać, jeśli używany jest HTML5. – Magnilex

+0

Używam go tylko wtedy, gdy nie mogę uzyskać niczego innego do pracy. Użyłem go na stronach, na których jest html5, ale wolę tego nie robić. Przeszedłem i zastąpiłem to, co mogłem, z '

button
' – ott

5

Kolejną miłą opcją jest użycie:

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