125 votes

HTML span align center ne fonctionne pas ?

J'ai un peu de HTML :

<div align="center" style="border:1px solid red">
This is some text in a div element!
</div>

Le Div modifie l'espacement de mon document, je veux donc utiliser un span à la place.

Mais le span ne centralise pas le contenu :

<span style="border:1px solid red;align=center">
This is some text in a div element!
</span>

Comment puis-je réparer cela ?

EDIT :

Mon code complet :

<html>
<body>

<p>This is a paragraph. This text has no alignment specified.</p>

<span style="border:1px solid red;text-align=center">
  This is some text in a div element!
</span>

</body>
</html>

1 votes

Votre div "change l'espacement" ? Qu'est-ce que vous entendez par là ? Et votre span ne le fera pas, car par défaut, c'est un élément de type en ligne alors qu'un div est un élément bloc élément de niveau.

0 votes

Bonjour JamWaffles, Par "espacement", je veux dire que la division ajoute de l'espace au-dessus et au-dessous du contenu. Le span ne fait pas cela.

0 votes

Utilisez Firebug ou l'inspecteur de Chrome pour voir quelles règles CSS sont appliquées à votre élément, et recherchez celle qui ajoute un padding ou une marge. Il est également possible que les éléments environnants aient un padding/margin.

218voto

William Points 7664

Un div est un élément de bloc, qui s'étend sur la largeur du conteneur, sauf si une largeur est définie. Un span est un élément en ligne, et sa largeur correspond à celle du texte qu'il contient. Actuellement, vous essayez de définir align comme une propriété CSS. Align est un attribut.

<span align="center" style="border:1px solid red;">
    This is some text in a div element!
</span>

Cependant, l'attribut align est déprécié. Vous devez utiliser l'attribut CSS text-align sur le conteneur.

<div style="text-align: center;">
    <span style="border:1px solid red;">
        This is some text in a div element!
    </span>
</div>

1 votes

Le problème avec la deuxième méthode se pose lorsque le conteneur doit être aligné à gauche et que le texte qu'il contient doit être centré. Comme dans le cas de cette question . J'ai essayé la méthode dépréciée car elle semble être la seule solution, mais elle ne fonctionne pas dans Chroimum ni dans Firefox.

55voto

Chris J Points 344

Veuillez utiliser le style suivant. margin:auto normalement utilisé pour centrer le contenu. display:table est nécessaire pour span élément

<span style="margin:auto; display:table; border:1px solid red;">
    This is some text in a div element!
</span>

40voto

Lucifer Sam Points 1768

El align est déprécié. Utilisez CSS text-align à la place. En outre, le span ne centrera pas le texte, sauf si vous utilisez la fonction display:block o display:inline-block et définir une valeur pour la largeur, mais il se comportera alors de la même manière qu'un div (élément de bloc).

Pouvez-vous afficher un exemple de votre disposition ? Utilisez www.jsfiddle.net

0 votes

Cela a bien fonctionné ! Merci.

0 votes

Ne puis-je pas aligner deux éléments en ligne différemment tout en les gardant en ligne ?

0 votes

El display:block fait passer le texte à une nouvelle ligne . Le site inline-block ne fonctionne pas du tout.

14voto

AIMABLE Points 575
span.login-text {
    font-size: 22px;
    display:table;
    margin-left: auto;
    margin-right: auto;
}

<span class="login-text">Welcome To .....CMP</span>

Pour moi, cela a très bien fonctionné. Essayez aussi ceci

2voto

nhazean Points 31

En plus de toutes les autres explications, je crois que tu utilises l'égalité "=" au lieu de deux points ":" :

<span style="border:1px solid red;text-align=center">

Il devrait l'être :

<span style="border:1px solid red;text-align:center">

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X