2010-07-24 19 views
9

używam przycisków CSS z tego poradnika:CSS: Nie mogę umieścić przycisk na środku elementu DIV

http://www.oscaralexander.com/tutorials/how-to-make-sexy-buttons-with-css.html

muszę umieścić przycisk w środku DIV więc jest wyśrodkowany. Ale nie mogę!

Oto kod przycisku:

<a class="button" href="#"><span>Bring world peace</span></a> 

A oto CSS:

.clear { /* generic container (i.e. div) for floating buttons */ 
    overflow: hidden; 
    width: 100%; 
} 

a.button { 
    background: transparent url('bg_button_a.gif') no-repeat scroll top right; 
    color: #444; 
    display: block; 
    float: left; 
    font: normal 12px arial, sans-serif; 
    height: 24px; 
    margin-right: 6px; 
    padding-right: 18px; /* sliding doors padding */ 
    text-decoration: none; 
} 

a.button span { 
    background: transparent url('bg_button_span.gif') no-repeat; 
    display: block; 
    line-height: 14px; 
    padding: 5px 0 5px 18px; 
} 

Oto kod próbuję użyć:

<div align="center"><a class="button" href="#"><span>Bring world peace</span></a></div> 

Odpowiedz

26

atrybutu align dla elementu div jest przestarzała. Lepiej zdefiniowania klasy dla tego div, tak:

<div class="centerize"> 
    <a class="button" href="#"><span>Bring world peace</span></a> 
</div> 

a CSS:

.centerize { 
    text-align: center; 
} 

Należy jednak pamiętać, że ustawienie text-align wpłynie tylko zawartość wewnątrz div. Sam div (powinien być) elementem blokowym, i zależnie od tego, gdzie znajduje się w strukturze dokumentu, może nie być wyśrodkowany.

Wystarczy zrobić trochę bardziej pewne, można zrobić coś takiego:

.centerize { 
    display: block; 
    margin: 0 auto; 
    text-align: center; 
} 

Teraz można zastosować centerize do dowolnego elementu, a element powinien trwać szerokość całej przeglądarki i centrum wyrównać jego zadowolony.

+0

Magiczne rzutki dzięki - szukałem czegoś takiego – Andez

+0

Czy to zadziała, jeśli są dwa przyciski i chcielibyśmy umieścić oba na środku? – kta

+0

Jestem zaskoczony; czas, jaki zajęło mu zadawanie tego pytania, by go wypróbować. Tutaj, pozwól mi zrobić to za Ciebie: http://jsfiddle.net/AUrM8/ – Chris

2

a.button jest płynął w lewo. Możesz wypróbować float: none; na tym elemencie. margin: 0 auto; jest również przydatny do elementów wyrównujących środek.

Czy to pomaga?

+0

+1. Usuń pływak z przycisku. Elementy pływające są usuwane z normalnego układu strony, a więc nie mają wpływu na style układu ich elementów nadrzędnych. – Chris

3

Modyfikuj klasę przycisk dla tych właściwości:

.button{ 
    margin-left:50%; 
    margin-right:50%; 
    position: relative; 
} 

i owinąć link w div tak:

<div align="center"> 
    <a class="button" href="#"><span>Bring world peace</span></a> 
</div> 
+0

Dzięki, działa tylko wtedy, gdy jest jedno słowo. Gdy jest więcej niż jedno słowo, otrzymuję BRING WORLD PEACE – Alex

+0

@Alex: Spróbuj dodać 'text-align: center' zarówno do klasy" .button', jak i DIV. – Sarfraz

+0

@Sarfraz To nie działa – lily

Powiązane problemy