Beide bedeuten Raum, aber gibt es einen Unterschied?
146
Einer ist ein nicht brechender Raum und der andere ist ein regulärer Raum. Ein nicht unterbrechendes Leerzeichen bedeutet, dass die Zeile an diesem Punkt nicht umbrochen werden sollte, so wie sie nicht in die Mitte eines Wortes eingeschlossen werden würde.
Darüber hinaus werden, wie Svend in seinem Kommentar betont, nicht brechende Leerzeichen nicht reduziert.
&hairsp      
Sie sie unter [ jsfiddle.net/medmunds/4crt3c9j/]Die Entität
erzeugt einen nicht unterbrechenden Bereich, der verwendet wird, wenn an dieser Position kein automatischer Zeilenumbruch gewünscht wird. Das reguläre Leerzeichen hat den Zeichencode 32, während das nicht unterbrechende Leerzeichen den Zeichencode 160 hat.Wenn Sie beispielsweise Zahlen mit Leerzeichen als Tausendertrennzeichen anzeigen: 1 234 567, verwenden Sie nicht unterbrechende Leerzeichen, damit die Zahl nicht in separate Zeilen aufgeteilt werden kann. Wenn Sie die Währung anzeigen und zwischen dem Betrag und der Währung ein Leerzeichen steht: 42 SEK, verwenden Sie ein nicht unterbrechendes Leerzeichen, damit Sie den Betrag nicht in einer Zeile und die Währung in der nächsten Zeile erhalten.
quelle
Zusätzlich zu den anderen Antworten hier werden nicht unterbrechende Leerzeichen nicht wie normale Leerzeichen "reduziert". Zum Beispiel beides
und
wird das gleiche in jedem Browser rendern, während
behält die Leerzeichen beim Rendern bei.
quelle
Keine Antwort so sehr wie Beispiele ...
Beispiel 1:
Beispiel 2:
Und Link zur Geige .
quelle
Ein funktionierendes Beispiel finden Sie hier:
http://codepen.io/anon/pen/GJzBxo
und
http://codepen.io/anon/pen/LVqBQo
Gleiches div, gleicher Text, verschiedene "Leerzeichen"
vs.
quelle
edit
einzuhalten, muss Ihr Beitrag entweder die resultierende Ausgabe des Codes in Ihre Antwort aufnehmen oder die eigene eingebettete Version von Codepen von SO hinzufügen, damit der Besucher den Code ausführen und das Ergebnis anzeigen kann, ohne eine externe Seite zu verlassen. Der Grund für die in sich geschlossene Richtlinie ist, dass die Antwort unbrauchbar wird, wenn der Link nicht mehr erreichbar ist. Außerdem ist es eine schlechte UX, wenn Benutzer das Unternehmen verlassen müssen, um eine Antwort zu erhalten.Mehrere normale Leerzeichen (Leerzeichen, Tabulator und Zeilenumbruch) werden als ein einziges Leerzeichen behandelt :
So
wird angezeigt als
Es wird jedoch immer ein Unterbrechungsbereich angezeigt. So
wird angezeigt als
quelle
Wie bereits erwähnt, erhalten Sie keinen Zeilenumbruch, wenn ein "Leerzeichen ohne Unterbrechung" vorhanden ist.
Seien Sie auch vorsichtig, dass Elemente, die nur ein "" enthalten, möglicherweise falsch angezeigt werden, wobei & nbsp; wird funktionieren. Zumindest in 6 (soweit ich mich erinnere, hat IE7 das gleiche Problem), wenn Sie ein leeres Tabellenelement haben, wird das Element nicht mit Stilen, z. B. Rahmen, versehen, wenn kein Inhalt vorhanden ist oder nur Weiß Platz. Folgendes wird also nicht mit Rahmen gerendert:
Während die Grenzen in diesem Beispiel angezeigt werden:
Hmm - musste ein Dummy-Leerzeichen einfügen, damit es hier richtig gerendert werden konnte
quelle
Der erste wird vom HTML-Parser nicht als Leerzeichen behandelt, der zweite. Infolgedessen wird nicht garantiert, dass das "" innerhalb eines bestimmten HTML-Markups angezeigt wird, während der nicht zerbrechliche Bereich immer angezeigt wird.
quelle
sollte als Leerzeichen behandelt werden.
sollte als zwei Leerzeichen behandelt werden'' kann als nicht interessantes Leerzeichen behandelt werden
'' + '' kann als einzelnes '' behandelt werden
quelle
ist stapelbar, dh Sie können mehrere Räume zusammen erstellen.HTML analysiert nur ein Leerzeichen und lässt den Rest fallen ...
Wenn Sie fünf Leerzeichen möchten, würden Sie 5 x platzieren
quelle
@ Zoidberg ist richtig, Beispiel:
zeigt kein Leerzeichen zwischen den Header-Markups an, mit
wird Platz machen :)
quelle
Bei Zeilenumbrüchen wird die Zeile nicht unterbrochen, wenn Sie ein $ bnsp verwenden. weil es ein "nicht brechender Raum" ist. Dies kann wichtig sein, wenn Sie bestimmte Produktnamen oder dergleichen haben, die immer zusammen geschrieben werden sollen.
Kann interessant sein, wenn Sie ein Leerzeichen als Trennzeichen in Zahlen verwenden müssen (müssen), z. B. 12344567, das in Frankreich 12 344 567 angezeigt wird. Ohne das würde die Linie in der Mitte der Zahl brechen, sehr hässlich. Test: 12 344 567
quelle
TLDR; Neben der akzeptierten Antwort; Einer ist implizit und einer ist explizit.
Wenn der von Ihnen geschriebene oder von einer Anwendung / Bibliothek / einem Framework generierte HTML-Code von Ihrem Browser gelesen wird, ist es am besten, die Bedeutung Ihres HTML-Codes zu interpretieren (der von Browser zu Browser unterschiedlich sein kann). Wenn Sie die HTML-Entitätscodes verwenden, sind Sie spezifischer für den Browser. Sie teilen ihm ausdrücklich mit, dass Sie dem Benutzer ein Zeichen anzeigen möchten (und nicht, dass Sie nur Ihren HTML-Code für eine bessere Lesbarkeit für den Entwickler platzieren).
Genauer gesagt, wenn der Ausgabe-HTML-Code wäre:
Der Browser würde nur ein Leerzeichen zwischen all diesen Wörtern rendern (auch diejenigen, die zur besseren Lesbarkeit für Entwickler eingerückt wurden.
Wenn Sie jedoch dasselbe setzen und nur das
<p>
Tag in Folgendes ändern :Dann würden die Leerzeichen gerendert, wie Sie es expliziter angewiesen haben. Es gibt eine gewisse Geschichte, diese Räume für das Styling zu verwenden. Diese Verwendung wurde etwas verringert, als CSS gereift ist. Es gibt jedoch immer noch gültige Verwendungen für viele der HTML-Zeichenentitäten: Vermeiden einer unerwarteten / unbeabsichtigten Interpretation (z. B. wenn Sie Code anzeigen möchten). Das w3 hat eine großartige Seite, auf der die anderen Zeichencodes angezeigt werden .
quelle
<p>Hello There</p>
ODER<p>Hello There</p>
(Wenn das Brechen kein Problem darstellt, können Sie einige Bits speichern, indem Sie vor und nach jedem einen regulären Leerraum verwenden
.)