Comment contrôler l'espacement des mots dans un texte justifié avec CSS?

9

J'ai 2 blocs de texte qui sont assez petits (juste sous un paragraphe chacun) et ils ont vraiment l'air mieux justifiés, mais le problème est que text-align: justify;parfois ajoute de très grands espaces et rend le texte quelque peu moche (l'effet inverse, évidemment).

Est-il possible de régler plus finement l'espacement des mots avec CSS pour que cela ne se produise pas?

TehMacDawg
la source

Réponses:

9

CSS TEXT-JUSTIFY

Cette propriété IE uniquement offre un raffinement sur la valeur «justifier» utilisée dans la text-alignpropriété. En effet, la valeur «justifier» doit être fixée pour que cette propriété text-justifyait un effet.

text-justify offre un niveau fin de contrôle de justification sur le contenu inclus, permettant une variété de modèles de justification sophistiqués utilisés dans différents systèmes d'écriture de langue.

Exemple

<p style="text-align: justify; text-justify: newspaper;">
    This is Newspaper justified content
</p>

Valeurs possibles

VALUE                   DESCRIPTION
----------------------  ---------------------------------------------------------------------
auto                    The browser will determine the appropriate justification algorithm
                        to use

distribute              Justification is handled similarly to the newspaper value,
                        but this version is optimized for East Asian content
                        (especially the Thai language.)
                        In this justification method, the last line is not justified.

distribute-all-lines    Behavior and intent for this value is the same as with the
                        distribute value, but the last line is also justified.

inter-cluster           Justifies content that does not have any inter-word spacing
                        (such as with many East Asian languages.)

inter-ideograph         Used for justifying blocks of ideographic content.
                        Justification is achieved by increasing or decreasing spacing
                        between ideographic characters and words as well.

inter-word              Justification is achieved by increasing the spacing between words.
                        It is the quickest method of justification and does not justify
                        the last line of a content block.

newspaper               Spacing between letters and words are increased or decreased
                        as necessary.

La référence IE dit "c'est la forme la plus sophistiquée de justification des alphabets latins".

Source: http://www.css3.com/css-text-justify/

J'espère que cela t'aides!

Marcus Mangelsdorf
la source
Cela semble être pris en charge par d'autres navigateurs maintenant.
mndrix
3

En plus d'utiliser text-justify, qui semble actuellement pris en charge par IE uniquement, envisagez d'ajouter la césure, avec des conseils de césure explicites &shy;et / ou une césure automatique basée sur le navigateur, en utilisant des hyphens: autopréfixes de navigateur appropriés ou en utilisant un trait d'union basé sur JavaScript comme Hyphenator.js. La césure réduit souvent considérablement le besoin d'espacement supplémentaire dans la justification.

Jukka K. Korpela
la source
The text-justify property is supported in all of the major browsers., source: w3schools.com/cssref/css3_pr_text-justify.asp et Text-Align, w3schools.com/cssref/pr_text_text-align.asp
3
@AbdiasSoftware, la page est fausse - encore une autre preuve que w3schools est de la merde, voir w3fools.com (La page w3schools contient des boutons "PlayIt", que vous pouvez utiliser pour voir assez rapidement que leurs informations sont fausses.)
Jukka K. Korpela
Ils sont parfois un peu dépassés, mais je ne les qualifierais pas de faux :-) Voici de toute façon une autre source: reference.sitepoint.com/css/text-align
@AbdiasSoftware, l'autre source concerne une autre propriété. Le site reference.sitepoint.com n'en fait aucune mention text-justify. Mais je suis désolé d'avoir initialement écrit au text-align-justifylieu de text-justify(corrigé maintenant). Le cadre text-align: justifyest bien sûr impliqué ici; la question est de savoir si le type de justification peut être contrôlé.
Jukka K. Korpela
Hm, bien intéressant. Je ferai d'autres recherches. Merci. Il est 4h du matin ici, mon jugement est éteint :-)