Wat is het verschil tussen “ ” en “ ”?

Beide betekenen ruimte, maar is er enig verschil?


Antwoord 1, autoriteit 100%

De ene is vaste spatieen de andere is een gewone spatie. Een vaste spatie betekent dat de regel op dat punt niet moet worden omwikkeld, net zoals hij niet in het midden van een woord zou staan.

Bovendien, zoals Svend in zijn opmerking aangeeft, worden vaste spaties niet samengevouwen.


Antwoord 2, autoriteit 36%

De entiteit  produceert een niet-afbrekende spatie, die wordt gebruikt als u geen automatisch regeleinde op die positie wilt. De gewone spatie heeft de tekencode 32, terwijl de vaste spatie de tekencode 160 heeft.

Als u bijvoorbeeld getallen weergeeft met een spatie als scheidingsteken voor duizendtallen: 1 234 567, dan gebruikt u niet-afbrekende spaties zodat het getal niet op afzonderlijke regels kan worden gesplitst. Als u valuta weergeeft en er staat een spatie tussen het bedrag en de valuta: 42 SEK, dan gebruikt u een vaste spatie zodat u niet het bedrag op de ene regel krijgt en de valuta op de volgende.


Antwoord 3, autoriteit 24%

In aanvulling op de andere antwoorden hier, worden vaste spaties niet “samengevouwen” zoals normale spaties. Bijvoorbeeld:

<!-- Both -->
<p>Word1          Word2</p>
<!-- and -->
<p>Word1 Word2</p>
<!-- will render the same on any browser -->
<!-- While the below one will keep the spaces when rendered. -->
<p>Word1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Word2</p>

Antwoord 4, autoriteit 18%

Niet zozeer een antwoord als wel voorbeelden…

Voorbeeld #1:

<div style="width:45px; height:45px; border: solid thin red; overflow: visible">
    Hello&nbsp;There
</div>  

Voorbeeld #2:

<div style="width:45px; height:45px; border: solid thin red; overflow: visible">
    Hello There
</div>

En link naar de viool.


Antwoord 5, autoriteit 4%

Meerdere normale witruimtetekens (spatie, tabulator en regeleinde) zijn behandeld als één enkele spatie:

Voor alle HTML-elementen behalve PRE, scheiden reeksen witruimte “woorden” (we gebruiken de term “woord” hier om “reeksen van niet-witruimtetekens” aan te duiden). Bij het opmaken van tekst moeten user agents deze woorden identificeren en opmaken volgens de conventies van de specifieke geschreven taal (script) en het doelmedium.

Dus

foo    bar

wordt weergegeven als

foo    bar

Maar er wordt altijd een vrije ruimte weergegeven. Dus

foo&‍nbsp;&‍nbsp;&‍nbsp;bar

wordt weergegeven als

foo    bar

Antwoord 6, autoriteit 4%

Je kunt hier een werkend voorbeeld zien:

http://codepen.io/anon/pen/GJzBxo

en

http://codepen.io/anon/pen/LVqBQo

Dezelfde div, dezelfde tekst, verschillende “spaties”

<div style="width: 500px; background: red"> [loooong text with spaces]</div>

vs

<div style="width: 500px; background: red"> [loooong text with &nbsp;]</div>

Antwoord 7, autoriteit 2%

Zoals reeds vermeld, ontvangt u geen regeleinde wanneer er een “no-break spatie” is.

Wees ook op uw hoede, dat elementen die alleen een ” ” bevatten, onjuist kunnen worden weergegeven, waarbij &nbsp; zal werken. In ie 6 tenminste (voor zover ik me herinner, heeft IE7 hetzelfde probleem), als je een leeg tabelelement hebt, zal het geen styling toepassen, bijvoorbeeld randen, op het element, als er geen inhoud is, of alleen wit ruimte. Het volgende wordt dus niet weergegeven met randen:

<td></td>
<td> <td>

Terwijl de randen in dit voorbeeld verschijnen:

<td>& nbsp;</td>

Hmm – moest een dummy-spatie invoeren om het hier correct weer te geven


Antwoord 8

De eerste wordt door de HTML-parser niet als witruimte behandeld, de tweede wel. Als gevolg hiervan wordt niet gegarandeerd dat de ” ” verschijnt binnen bepaalde HTML-opmaak, terwijl de niet-breekbare ruimte altijd zal verschijnen.


Antwoord 9

&nbsp;moet worden behandeld als een spatie.

&nbsp;&nbsp;moet worden behandeld als twee spaties

‘ ‘ kan worden behandeld als een niet-interessante witruimte

‘ ‘ + ‘ ‘ kan worden behandeld als een enkele ‘ ‘


Antwoord 10

&nbsp;is stapelbaar, wat betekent dat je meerdere ruimtes tegelijk kunt maken.

HTML zal slechts één spatie ontleden ” en de rest wordt verwijderd…

Als je vijf spaties wilt, plaats je 5 x &nbsp;


Antwoord 11

@Zoidberg heeft gelijk,
voorbeeld:

<h1>title</h1> <h2>date</h2>

geeft geen spatie weer tussen koptekstopmaak, met

& nbsp ; 

zal ruimte innemen 🙂


Antwoord 12

Als je regeleinden hebt, zal de regel niet breken als je een $bnsp gebruikt; omdat het een ‘non-breaking space’ is. Dit kan belangrijk zijn als u bepaalde productnamen of iets dergelijks heeft, die altijd samen moeten worden geschreven.

Kan interessant zijn als je een spatie (moet) gebruiken als scheidingsteken in getallen, zoals 12344567, die in Frankrijk 12 344 567 wordt weergegeven. Zonder de   de lijn zou breken in het midden van het nummer, erg lelijk. Test:12 344 567


Antwoord 13

TLDR; Naast het geaccepteerde antwoord; De ene is impliciet en de andere expliciet.

Wanneer de HTML die u hebt geschreven of had gegenereerd door een applicatie / bibliotheek / framework door uw browser wordt gelezen, is het het beste om te interpreteren wat uw HTML bedoelde (die kan variëren van browser naar browser). Wanneer u de HTML-entiteitscodes gebruikt, bent u specifieker voor de browser. U vertelt het expliciet dat u een personage wilt weergeven aan de gebruiker (en niet dat u gewoon uw HTML afspaart voor eenvoudige leesbaarheid voor de ontwikkelaar).

Om meer beton te zijn, als de uitvoer HTML de:

<html>
   <title>hello</title>
   <body>
       <p>
           Tell me and I will forget. Teach me and I
           may remember.  Involve me and I will learn.
       </p>
   </body>
</html>

De browser zou slechts één ruimte tussen al deze woorden maken (zelfs degenen die zijn ingesprongen voor de leesbaarheid van betere ontwikkelaars.

Als u echter hetzelfde doet en alleen de <p>tag aan:

<p>Hello&nbsp;&nbsp;&nbsp;There</p>

Dan zou het de ruimtes maken, omdat je het explicieter hebt geïnstrueerd. Er is een geschiedenis van het gebruik van deze ruimtes voor het stylen. Dit gebruik is enigszins verminderd omdat CSS is gerijpt. Er zijn echter nog steeds geldig gebruik voor veel van de HTML-tekens entiteiten: onverwachts / onbedoeld interpretatie (bijvoorbeeld als u code wilde weergeven). w3 heeft een geweldige pagina om de andere tekencodes te tonen.

Other episodes