18041 sujets
Questions générales et questions de débutants
Du display:inline-block pour les navigateurs modernes, du haslayout pour IE 6-7, et du «tant pis pour sa gueule» pour Firefox 2 (plutôt que d'utiliser -moz-inline-stack, trop casse-gueule), ça peut être très bien. Je
Notons tout de même qu'il existe un type de «bloc» qui peuvent être centrés avec des marges automatiques, même si sa largeur n'est pas définie, et qui en même temps va restreindre sa largeur à son contenu: un tableau. Utiliser display:table-cell (mode «tant pis pour sa gueule» pour IE 6 et 7), ou à la rigueur un tableau de mise en page, c'est aussi une solution.
Notons tout de même qu'il existe un type de «bloc» qui peuvent être centrés avec des marges automatiques, même si sa largeur n'est pas définie, et qui en même temps va restreindre sa largeur à son contenu: un tableau. Utiliser display:table-cell (mode «tant pis pour sa gueule» pour IE 6 et 7), ou à la rigueur un tableau de mise en page, c'est aussi une solution.
A mon avis
display:inline-block; => navigateur modernes. (oki , ... faut un parent en text-align:center )
display:table;display:inline-block; => ff2 et inferieur (en marge auto)
Haslayout (display:inline;zoom:1;width:1%;} => IE6 et inf
IE7 ...haslayout sans largeur definie ... la c'est moins sur
Reste pour tous et sans prise de tête un tableau d'une cellule en marge auto , même si ça va contre la logique .
GC
<edit> Sinon logiquement , je pencherais plutot pour le display:table; .. vu qu'il ne s'agit que d'un seul conteneur a centrer horizontalement ...et si ce conteneur doit recevoir un ou plusieurs element de types block.
S'il ne s'agit que d'un simple et court texte sur une ligne , display:inline; dans un conteneur en text-align:center suffit amplement a centrer en appliquant une bordure ou une couleur de fond differente par exemple .
La logique du display:inline; intervient, a mon sens, lorsque cet élément s'intercale entre d'autres éléments "inline" (sans même avoir besoin d'evoqué un vertical-align). </>
Modifié par gc-nomade (14 Jul 2009 - 22:06)
display:inline-block; => navigateur modernes. (oki , ... faut un parent en text-align:center )
display:table;display:inline-block; => ff2 et inferieur (en marge auto)
Haslayout (display:inline;zoom:1;width:1%;} => IE6 et inf
IE7 ...haslayout sans largeur definie ... la c'est moins sur
Reste pour tous et sans prise de tête un tableau d'une cellule en marge auto , même si ça va contre la logique .
GC
<edit> Sinon logiquement , je pencherais plutot pour le display:table; .. vu qu'il ne s'agit que d'un seul conteneur a centrer horizontalement ...et si ce conteneur doit recevoir un ou plusieurs element de types block.
S'il ne s'agit que d'un simple et court texte sur une ligne , display:inline; dans un conteneur en text-align:center suffit amplement a centrer en appliquant une bordure ou une couleur de fond differente par exemple .
La logique du display:inline; intervient, a mon sens, lorsque cet élément s'intercale entre d'autres éléments "inline" (sans même avoir besoin d'evoqué un vertical-align). </>
Modifié par gc-nomade (14 Jul 2009 - 22:06)