2009-08-31 54 views

Respuesta

99

Uno es non-breaking space y el otro es un espacio normal. Un espacio sin interrupciones significa que la línea no debe estar envuelta en ese punto, al igual que no estaría envuelta en el medio de una palabra.

Además, como señala Svend en su comentario, los espacios sin interrupción no se colapsan.

+28

  son también no se aplasta, que es probablemente el aspecto más importante de su uso (al menos, eso es lo que tienden a utilizar ellos, cosas almohadilla a cabo, rápida y fácil) – Svend

+1

Buen punto. Añadiré eso. –

+17

Prototipo: no use el 15% de nbsp; s seguidos para espaciar algo. Me vuelve loco cuando veo gente haciendo eso. Use relleno o margen de CSS. –

2

La primera no se trata como un espacio en blanco por el analizador de HTML, el segundo es. Como resultado, no se garantiza que "" aparezca dentro de ciertas marcas HTML, mientras que el espacio no rompible siempre aparecerá.

0

@Zoidberg es correcto, ejemplo:

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

no mostrará el espacio entre las marcas de cabecera, con

& nbsp ; 

hará espacio :)

0

&nbsp; debe ser manejado como una espacio en blanco.

&nbsp;&nbsp; debe manipularse como dos espacios en blanco

'' puede ser manejado como un espacio en blanco no interesante

'' + '' puede ser manejado como una sola ''

27

Además de la otras respuestas aquí, los espacios sin interrupción no se "colapsarán" como lo harán los espacios comunes. Por ejemplo, tanto

<p>Word1   Word2</p> 

y

<p>Word1 Word2</p> 

rendirá el mismo en cualquier navegador, mientras que

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

mantendrá los espacios cuando se representa.

+0

Re su última frase: ¿& no funciona? – Stewart

+0

No, luego terminé con & en todas partes. No interpretó los & amp; amp; pero interpretó los & nbsp. –

+2

Ahora veo. Por cierto, es un error conocido: http://meta.stackexchange.com/questions/3314 – Stewart

4

múltiples caracteres de espacio en blanco normal (espacio, tabulador y de salto de línea) son treated as one single white space character:

Para todos los elementos HTML, excepto PRE, secuencias de "palabras" espacio en blanco separadas (usamos el término "palabra" aquí para significar "secuencias de caracteres de espacio no blanco"). Cuando el formateo de texto, los agentes de usuario deben identificar estas palabras y las ponen a cabo de acuerdo con las convenciones del lenguaje particular por escrito (guión) y el medio de destino.

Así

foo bar 

se muestra como

foo bar 

Pero siempre se visualiza el espacio no-break.Así

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

se muestra como

foo bar 
5

Como ya se ha mencionado, no recibirá un salto de línea, donde hay un "espacio no-break".

También tenga cuidado, que los elementos que contienen solo un "" pueden aparecer incorrectamente, donde & nbsp; trabajará. En ie 6 como mínimo (por lo que recuerdo, IE7 tiene el mismo problema), si tiene un elemento de tabla vacío, no aplicará estilo, por ejemplo, bordes, al elemento, si no hay contenido, o solo blanco espacio. Así que lo siguiente no se debe reproducir con fronteras:

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

Considerando que las fronteras se mostrarán en este ejemplo:

<td>& nbsp;</td> 

Hmm -tenía que poner en un espacio ficticio conseguirlo a transmitir correctamente aquí

+0

Re su última frase: ¿& no funciona? – Stewart

+0

@Stewart - Lo intenté con el amplificador, y funcionó en el texto, pero no en el ejemplo del código, porque también escribió la parte del "amplificador" – Pete

+0

Muy extraño. Obviamente un error. – Stewart

47

La entidad &nbsp; produce un espacio sin interrupciones, que se utiliza cuando no se desea un salto de línea automático en esa posición. El espacio regular tiene el código de carácter 32, mientras que el espacio sin interrupción tiene el código de carácter 160.

Por ejemplo, cuando visualiza números con espacio como separador de miles: 1 234 567, utiliza espacios sin interrupción para que el número no se puede dividir en líneas separadas. Si muestra la moneda y hay un espacio entre el monto y la moneda: 42 SEK, entonces utiliza un espacio sin interrupción para que no obtenga el monto en una línea y la moneda en la siguiente.

+0

Buenos ejemplos de uso nbsp. Yo estaba buscando un poco, pero no podía pensar en ellos. – Pete

0

Al tener saltos de línea, la línea no se romperá cuando use $ bnsp; porque es un "espacio sin interrupciones". Esto puede ser importante si tiene ciertos nombres de productos o similares, que siempre se escribirán juntos.

Puede ser interesante si tiene que usar un espacio en blanco como delimitador en números, como 12344567, que se muestra 12 344 567 en Francia. Sin el  , la línea se rompería en el medio del número, muy fea. Prueba: 12 344 567

15

No es una respuesta tanto como un ejemplo ..

Ejemplo # 1:

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

Ejemplo # 2:

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

Y enlace al fiddle.

0

&nbsp; es apilable, lo que significa que puede crear múltiples espacios juntos.

HTML sólo analizará un espacio '' y se cae el resto ...

Si desea cinco espacios, colocaría 5 x &nbsp;

3

Hay una gran cantidad de diferentes tipos de espacios, como espacio delgado, espacio em, espacio sin interrupción ... Jon Tan ha realizado una descripción de los más comunes at his blog.

2

Se puede ver un ejemplo de trabajo aquí:

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

y

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

mismo div, mismo texto, diferentes "espacios"

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

vs

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

¿Puede explicarme por qué rechazó esta respuesta? –

+0

Lo he votado arriba. Creo que no explica las cosas. Sin embargo, está señalando algo visual que es útil. – Nishant

Cuestiones relacionadas