Gibt es ein Leerzeichen mit fester Breite, das in einem begründeten Absatz nicht erweitert werden kann?

8

Berechtigte Absätze erweitern den Abstand zwischen den Wörtern, aber ich habe erwartet, dass   von dieser Erweiterung nicht betroffen ist. Leider ist es betroffen und daher muss ich ein nicht betroffenes Leerzeichen finden (vorzugsweise eines mit der gleichen Breite wie ein normales Leerzeichen in einem normalen linksbündigen Absatz). Irgendwelche Vorschläge?

    
76987 22.10.2013, 01:43
quelle

3 Antworten

3

Sie könnten einfach ein Zeichen wie . hinzufügen und es unsichtbar machen.

Es funktioniert. jsFiddle hier

Es wird nicht als Leerzeichen geparst, da es technisch gesehen ein Zeichen ist, das einfach nicht sichtbar ist.

Für eine sauberere Methode könnten Sie das Zeichen über das Pseudoelement :after einfügen.

%Vor%

jsFiedle hier

    
Josh Crozier 22.10.2013, 02:37
quelle
4

Das Rendern von Leerzeichen außer SPACE und NO-BREAK SPACE ist in HTML-Spezifikationen nicht definiert. In der Praxis können verschiedene Bereiche mit fester Breite verwendet werden, und sie werden nicht zur Rechtfertigung erweitert (Effektiv werden sie als grafische Zeichen behandelt, nur mit leeren Glyphen). Derjenige, der am ehesten einem normalen Raum in der Breite entspricht, ist FOUR-PER-EM SPACE,   , aber aus den Kommentaren scheint es, dass Sie lieber THIN SPACE oder SIX-PER-EM SPACE verwenden möchten.

>

Früher haben Browser NO-BREAK SPACE als nicht erweiterbar behandelt, und manche tun dies vielleicht noch, aber aus irgendeinem Grund haben die meisten Browser diese sinnvolle Idee aufgegeben. Es gibt keine Garantie, dass sie das nicht mit fester Breite tun werden.

Abgesehen von dem theoretischen Punkt und dem erwähnten Risiko leiden Flächen mit fester Breite unter Zeichensatzproblemen und Brüchigkeit. Die Probleme mit der Schrift gelten hauptsächlich für alte Versionen von IE, und die Brechbarkeit (dh Leerzeichen mit fester Breite werden so behandelt, dass ein Zeilenumbruch nach ihnen möglich ist) könnte mit NARROW NO-BREAK SPACE behandelt werden, wenn ihre Breite Ihnen entspricht und Sie die riskiere das Problem mit der Schrift.

Es ist also wahrscheinlich am besten, den Abstand in CSS zu verwenden, obwohl das etwas mehr Arbeit bedeutet. Für z.B. "Z.B." mit einem Abstand nach der ersten Periode, müssten Sie entscheiden, ob es "z.B." oder "e" sein soll. g. "auf Charakterebene. Im ersten Fall wickle einfach den ersten Punkt in ein span und setze padding-right darauf. Im letzteren Fall könnten Sie z.B. Verwende e.<span class=thin>&nbsp;</span>g. und setze die Breite von span auf etwas, das ausreichend klein ist (mit display: inline-block und einer width Einstellung).

    
Jukka K. Korpela 22.10.2013 06:50
quelle
1

Unicode bietet mehrere Abstandzeichen . Von Nutzen ist hier vermutlich der Thin Space , (Unicode 0x2009, &thinsp; in HTML), der kleiner ist als, aber nah zu einem regelmäßigen Raum. Sehen Sie, wie Sie mit JSFiddle arbeiten .

Sie könnten auch an dem verwandten Unicode 0x202F interessiert sein, der die nichtbrechende Version von Thin Space darstellt.

Der Vorteil davon gegenüber der Methode mit versteckten Zeichen ist, dass das Leerzeichen tatsächlich noch in der Quelle vorhanden ist und daher von einem Screenreader gelesen wird (während das versteckte Zeichen vollständig ignoriert wird).

    
Andrew Marshall 22.10.2013 03:21
quelle

Tags und Links