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. &nbsp;Dolor..
  • ..ipsum.&nbsp; Dolor..
  • ..ipsum.&nbsp;&nbsp;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

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 &emsp; ou &ensp; 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 &nbsp; empêcheront les sauts de ligne dans cet espace; c'est ce que &nbsp; moyens, espace insécable. La séquence A sentence. &nbsp;Another. provoque la &nbsp; apparaître sur la deuxième ligne, le texte légèrement en retrait, ce qui est probablement undesireable. La séquence A sentence.&nbsp; 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 &nbsp; à la fin de la ligne, il permettra d'éviter que la ligne d'être dûment justifiée. &nbsp; est destiné au cas de l'écriture du nom d'une personne, comme Mr.&nbsp;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 &nbsp; 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, white-space: pre-wrap ne fonctionne pas avec text-align: justify. Cependant, je l'ai testé un sampler rel="noreferrer"> utilisant

Pour tout ce que vous « vétuste » et « mono-espace-seulement » - défaitistes lire un livre. Les éditeurs professionnels ont utilisé un seul &emsp; 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 &ensp; semble mieux dans la plupart des navigateurs: &emsp; est trop large. Que pensez-vous de la lisibilité de ce paragraphe? L'éditeur de Stackoverflow permet à certains HTML, et je l'utilise &ensp; entre toutes les phrases.

&nbsp; 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; }

scroll top