2009-08-31 72 views

risposta

99

Uno è non-breaking space e l'altro è uno spazio regolare. Uno spazio non interrotto significa che la linea non deve essere avvolta in quel punto, proprio come se non fosse avvolta nel mezzo di una parola.

Inoltre, come sottolinea Svend nel suo commento, gli spazi non interrotti non sono crollati.

+28

  sono anche non-collasso, che è probabilmente l'aspetto più significativo del loro uso (almeno, è così che io tendo a usarli, roba pad fuori, rapido e facile) – Svend

+1

Buon punto. Lo aggiungerò. –

+17

Protip: si prega di non utilizzare il 15% nbsp; 's in una riga per spazio qualcosa. Mi fa impazzire quando vedo persone che lo fanno. Usa padding o margine CSS. –

2

Il primo non è trattato come spazio bianco dal parser HTML, il secondo è. Di conseguenza non è garantito che il "" venga visualizzato all'interno di determinati markup HTML, mentre lo spazio non interrompibile verrà sempre visualizzato.

0

@Zoidberg ragione, esempio:

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

non visualizzerà spazio tra intestazione markup, con

& nbsp ; 

farà spazio :)

0

&nbsp; devono essere trattate come spazi bianchi.

&nbsp;&nbsp; vanno maneggiati come due spazi bianchi

'' può essere gestito come uno spazio bianco non interessante

'' + '' può essere trattato come un singolo ''

27

Oltre altre risposte qui, gli spazi non-breaking non saranno "collassati" come lo faranno gli spazi normali. Ad esempio, sia

<p>Word1   Word2</p> 

e

<p>Word1 Word2</p> 

renderà lo stesso su qualsiasi browser, mentre

<p>Word1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Word2</p> 

manterrà gli spazi se fusi.

+0

Ripeti l'ultima frase: & non funziona? – Stewart

+0

No, poi ho finito con & in tutto. Non ha interpretato il & amp's ma ha interpretato il & nbsp's. –

+2

Vedo ora. BTW è un bug noto: http://meta.stackexchange.com/questions/3314 – Stewart

4

più spazi vuoti normali (spazio, tabulazione e di interruzione di riga) sono treated as one single white space character:

Per tutti gli elementi HTML tranne PRE, le sequenze di spazio bianco "parole" separate (usiamo la "parola" termine qui per significare "sequenze di caratteri spaziali non bianchi"). Durante la formattazione del testo, i programmi utente dovrebbero identificare queste parole e disporle secondo le convenzioni della particolare lingua scritta (script) e del supporto di destinazione.

Così

foo bar 

viene visualizzato come

foo bar 

Ma viene sempre visualizzato lo spazio no-break.Così

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

viene visualizzato come

foo bar 
5

Come già detto, non sarà possibile ricevere un'interruzione di linea in cui v'è uno "spazio no-break".

Fare attenzione, gli elementi contenenti solo un "" potrebbero essere visualizzati in modo errato, dove & nbsp; funzionerà. In ie 6 almeno (per quanto ricordo, IE7 ha lo stesso problema), se hai un elemento di tabella vuoto, non applicherà lo styling, ad esempio i bordi, all'elemento, se non c'è contenuto, o solo bianco spazio. Quindi quanto segue non sarà reso con i bordi:

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

considerando che i confini verranno visualizzati in questo esempio:

<td>& nbsp;</td> 

Hmm -had di mettere in uno spazio fittizio per farlo rendere correttamente qui

+0

Re l'ultima frase: & non funziona? – Stewart

+0

@Stewart - Ho provato con l'amplificatore, e ha funzionato nel testo, ma non nel codice exmple - perché ha anche scritto la parte "amplificata" – Pete

+0

Molto strano. Ovviamente un bug. – Stewart

47

L'entità &nbsp; produce uno spazio non interrotto, che viene utilizzato quando non si desidera un'interruzione di riga automatica in quella posizione. Lo spazio regolare ha il codice carattere 32, mentre lo spazio senza interruzioni ha il codice carattere 160.

Ad esempio quando si visualizzano numeri con spazio come separatore di migliaia: 1 234 567, quindi si utilizzano spazi non interrotti in modo che il numero non può essere diviso su righe separate. Se visualizzi la valuta e c'è uno spazio tra l'importo e la valuta: 42 SEK, quindi utilizzi uno spazio senza interruzioni in modo da non ottenere l'importo su una riga e la valuta sul successivo.

+0

Buoni esempi di utilizzo di nbsp. Stavo cercando qualcuno da solo, ma non potevo pensare a loro. – Pete

0

In caso di interruzioni di riga, la linea non si interromperà quando si utilizza $ bnsp; perché è uno 'spazio senza interruzioni'. Questo può essere importante se hai determinati nomi di prodotti o simili, che devono sempre essere scritti insieme.

Può essere interessante se si (deve) utilizzare uno spazio bianco come delimitatore in numeri, come 12344567, che viene visualizzato 12 344 567 in Francia. Senza lo   la linea si spezzerebbe nel mezzo del numero, molto brutto. Test: 12 344 567

15

Non è una risposta tanto quanto un esempi ..

Esempio # 1:

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

Esempio # 2:

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

E link a fiddle.

0

&nbsp; è impilabile, ovvero è possibile creare più spazi tutti insieme.

HTML analizzare solo uno spazio '' e scende il resto ...

Se vuoi cinque spazi, si dovrebbe posizionare 5 x &nbsp;

3

Ci sono un sacco di diversi tipi di spazi, come lo spazio sottile, lo spazio em, lo spazio non interrompente ... Jon Tan ha pubblicato una recensione dei più comuni at his blog.

2

Si può vedere un esempio di lavoro qui:

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

e

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

Stesso div, stesso testo, diversi "spazi"

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

vs

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

Puoi spiegarmi, perché risparmi questa risposta? –

+0

L'ho svalutato. Penso che non spieghi le cose. Comunque stai indicando qualcosa di visivo che è utile. – Nishant

Problemi correlati