2010-07-24 7 views
9

J'utilise des boutons CSS de ce tutoriel:CSS: Je ne peux pas mettre un bouton au milieu d'un élément DIV

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

je dois mettre un bouton au milieu d'un DIV donc c'est centré. Mais je ne peux pas!

Voici le code du bouton:

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

Et voici 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; 
} 

Voici le code que je suis en train d'utiliser:

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

Répondre

26

l'attribut d'alignement pour l'élément div est dépréciée. Vous êtes mieux définir une classe pour cette div, comme suit:

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

Et le CSS:

.centerize { 
    text-align: center; 
} 

Notez cependant que la définition du texte-align n'affectera le contenu à l'intérieur du div. Le div lui-même (devrait être) un élément de bloc, et selon où il se trouve dans la structure du document, ne peut pas être centré lui-même.

Juste pour faire un peu plus sûr, vous pouvez faire quelque chose comme ceci:

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

Maintenant vous pouvez appliquer centerize à tout élément, et cet élément devrait prendre et centre aligner la largeur de l'ensemble du navigateur de son contenu.

+0

Magic fléchettes merci - je cherchais quelque chose comme ça – Andez

+0

Est-ce que cela fonctionnera s'il y a deux boutons et nous aimerions placer les deux sur le centre? – kta

+0

Je suis surpris. le temps qu'il a fallu pour poser cette question aurait pu être dépensé pour l'essayer. Ici, laissez-moi faire ça pour vous: http://jsfiddle.net/AUrM8/ – Chris

2

Le a.button est flotta à gauche. Vous pouvez essayer float: none; sur cet élément. margin: 0 auto; est également utile pour les éléments d'alignement central.

Cela aide-t-il?

+0

+1. Retirez le flotteur du bouton. Les éléments flottants sont supprimés de la mise en page normale et ne sont donc pas affectés par les styles de mise en page de leurs éléments parents. – Chris

3

Modifier la classe de bouton pour ces propriétés:

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

et enveloppez votre lien dans la div comme ceci:

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

Merci, ça marche seulement quand il y a un mot. Quand il y a plus d'un mot, je reçois MONTRE MONDE PEACE – Alex

+0

@Alex: Essayez d'ajouter 'text-align: center' à la fois à la classe' .button' et au DIV. – Sarfraz

+0

@Sarfraz Cela ne fonctionne pas – lily

Questions connexes