L'espacement des phrases [fermé]
-
21-09-2019 - |
Question
Quelle est la meilleure façon de présenter l'espacement supplémentaire qui devrait venir entre les phrases (en utilisant [X] HTML + CSS)?
<p>Lorem ipsum. Dolor sit amet.</p>
^^ wider than word spacing
Depuis HTML et XML à la fois exigent le pliage des espaces, les deux espaces ci-dessus doivent se comporter comme un seul espace.
Quelles sont les options? Il y a quelques plus évidentes ci-dessous, ce que d'autres existent? (Tout en CSS3?) Quels inconvénients, le cas échéant, existent pour la ceux-ci, y compris à travers les différents navigateurs? (Comment les espaces insécables ci-dessous interagissent avec les changements de ligne?)
-
..ipsum. Dolor..
-
..ipsum. Dolor..
-
..ipsum. Dolor..
Il y a beaucoup de FUD sur le net qui prétend cela a été inventé pour machines à écrire, mais vous pouvez le voir dans des documents tels que les Etats-Unis Déclaration d'indépendance . (Et oui, je me rends compte que vous ne devriez pas suivre toutes les conventions de plus de deux cents ans, le DOI est simplement un exemple pratique montrant machines à écrire et ce antidate polices à espacement fixe.) Ou un typographe affirmant que le
La solution Enveloppez chaque phrase dans une période, et le style de la durée peut-être. (Pas une excellente solution).
Autres conseils
Vous pouvez utiliser white-space: pre-wrap
pour préserver des séquences d'espaces, tout en enroulant encore du texte:
<p style="white-space: pre-wrap;">Lorem ipsum. Dolor sit amet.</p>
est pas pris en charge dans IE jusqu'à IE 8 en mode IE 8, ni dans Firefox jusqu'à 3.0.
Vous pouvez également utiliser  
ou  
pour les espaces d'un em
ou un en
large. Je ne sais pas comment un large soutien de ces derniers est, mais ils semblent travailler sur la dernière WebKit et Firefox sous Mac OS X.
Une séquence de deux caractères
empêcheront les sauts de ligne dans cet espace; c'est ce que
moyens, espace insécable. La séquence A sentence. Another.
provoque la
apparaître sur la deuxième ligne, le texte légèrement en retrait, ce qui est probablement undesireable. La séquence A sentence. Another.
fonctionne très bien, avec une ligne de rupture et ne pas ajouter une indentation, mais si vous l'utilisez dans un texte justifié, avec le
à la fin de la ligne, il permettra d'éviter que la ligne d'être dûment justifiée.
est destiné au cas de l'écriture du nom d'une personne, comme Mr. Torvalds
, ou une abréviation se terminant par un .
, dans lequel la convention typographique dit que vous ne devriez pas le diviser à travers les lignes afin d'éviter que les gens se confondre et de penser que la peine a pris fin.
Ainsi, en utilisant des séquences de
est indésirable. Puisque c'est un effet de style, je vous recommande d'utiliser white-space: pre-wrap
, et en acceptant que le style sera un peu moins qu'idéale sur les plates-formes qui ne supportent pas.
modifier : Comme l'a souligné dans les commentaires, Pour tout ce que vous « vétuste » et « mono-espace-seulement » - défaitistes lire un livre. Les éditeurs professionnels ont utilisé un seul white-space: pre-wrap
ne fonctionne pas avec text-align: justify
. Cependant, je l'ai testé un sampler rel="noreferrer"> utilisant
 
entre les phrases pour des temps immémoriaux, et qui est où le standard de deux monospaces l'espace est venu. Apprendre de l'histoire au lieu de la rhétorique jaillissant sans fondement. Je dois admettre, cependant, qu'un  
semble mieux dans la plupart des navigateurs:  
est trop large. Que pensez-vous de la lisibilité de ce paragraphe? L'éditeur de Stackoverflow permet à certains HTML, et je l'utilise  
entre toutes les phrases.
Je voulais juste jeter là-bas que si votre objectif est de remplacer le navigateur par défaut de mise en œuvre des espaces pour fournir un espacement de phrase « appropriée », il est en fait
n'est pas le caractère correct à utiliser, sémantiquement parlant. Il est un espace insécable: un espace qui ne sera pas utilisé comme un saut de ligne. Peut-être utiliser un espace d'un  
ou un  
, ou (ma recommandation personnelle) ne vous embêtez pas avec le style double espace vétuste sur votre page.
is the worst possible method, as it disrupts justification. Pre-wrap as suggested gives coarse control but can't be justified. There are other space entities like &thinspace; and &nspace;, as well as a bunch of Unicode space characters that should give somewhat better control and should not break justification. These entities are the best non-CSS solution in my opinion.
For better control you need a CSS solution. You can either span the sentences, the obvious choice, or you can span the space between sentences. The latter to me seems more incorrect, but it is easier to achieve, especially if you have the common two-space typing habit - you can simply search and replace all period-space-space with a span around a space. I have some javascript that does this on the fly for blogger.
Don't use the box model (padding-right) as it will break the right margin of fully justified text (and even if not fully justified, causes lines to wrap "early"). If you are spanning the space between sentences you can just alter the word-spacing on these elements. If you are wrapping sentences, you can set your paragraph or other container to have bigger word-spacing, and the set the sentences back to normal, or you can do it in one step with the after selector:
.your_sentence_class:after { content:" "; word-spacing:0.5em; }