2 votes

text-align justify, ne peut pas être remplacé

J'ai du texte avec text-align: justify; la propriété est héritée dans les liens et autres éléments en ligne imbriqués dans ce texte. Je veux définir un autre mode d'alignement du texte pour certains d'entre eux, par exemple text-align: center; mais je ne peux pas. Firebug montre que le style du parent est remplacé, mais que l'élément inline imbriqué est toujours justifié. J'ai observé ce comportement étrange dans de nombreux navigateurs différents et il est évident qu'ils font cela par spécification ? Est-ce vraiment une question de conception ? Comment contourner ce problème ?

EDIT : Quelques exemples de code. Le span avec ID=span1 ne peut pas définir son propre alignement de texte. Il devrait être aligné à droite, mais il est centré à la place. En expérimentant, j'ai remarqué que les éléments en ligne ne peuvent pas définir d'alignement de texte du tout. C'est très étrange.

<html>
<head>
<style type="text/css">
#cubic { width: 495px; height: 200px; background-color: green; text-align: center}
#span1 {text-align: right; color: red}
</style>
</head>

<body>
<p id="cubic">
<span id="span1">This is span 1</span>
</p>
</body>
</html>

3voto

James Skemp Points 1993

C'est exact ; les éléments en ligne ne peuvent pas avoir d'alignement de texte, à moins qu'ils ne soient définis comme des blocs d'affichage.

Un exemple simple :

<html>
<style>
    #spanInline {text-align:right;}
    #spanBlock {text-align:right;display:block;}
    #divBlock {text-align:right;}
    #divInline {text-align:right;display:inline;}
</style>
<body>
<span id="spanInline">asdf</span><br />
<span id="spanBlock">asdf</span><br />
<div id="divBlock">asdf</div><br />
<div id="divInline">asdf</div><br />
</body>
</html>

Si vous jetez des bordures autour des éléments, vous verrez plus d'informations sur la raison pour laquelle cela ne fonctionne pas.

2voto

Lorenzo Marcon Points 3840

En fait, text-align ne s'applique qu'aux éléments de bloc, et span n'est pas un élément de bloc. Veuillez essayer le code suivant :

<p id="cubic">
<div id="span1">This is div 1</div>
</p>

et vérifiez s'il correspond à vos besoins.

0voto

Nelson Chan Points 84

J'ai rencontré ce problème moi-même et une solution plus rapide est d'utiliser un bloc en ligne :

#span1 { display: inline-block; text-align: right; color: red}

Il n'est pas bon de définir vos étendues sur un élément de bloc simple, car les éléments de bloc ajouteront des sauts de ligne avant et après l'élément. Si vous avez des espaces à l'intérieur d'un paragraphe, le paragraphe sera complètement cassé.

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