Какая разница между " " а также ""?

Оба они означают пробел, но есть ли разница?

Ответ 1

Один неразрывное пространство, а другое - обычное пространство. Неразрывное пространство означает, что строка не должна быть обернута в этой точке, так же как она не будет обернута в середине слова.

Кроме того, как указывает Свенд в своем комментарии, неразрывные пробелы не свертываются.

Ответ 2

Сущность   создает неразрывное пространство, которое используется, когда вы не хотите, чтобы автоматический разрыв строки в этой позиции. Регулярное пространство имеет код символа 32, а неразрывное пространство имеет код символа 160.

Например, при отображении чисел с пробелом в качестве разделителя тысяч: 1 234 567, то вы используете неразрывные пробелы, чтобы число не могло быть разделено на отдельные строки. Если вы показываете валюту и между суммой и валютой находится пробел: 42 SEK, то вы используете нераскрывающееся пространство, чтобы вы не получали сумму в одной строке и валюту на следующей.

Ответ 3

В дополнение к другим ответам здесь неразрывные пробелы не будут "рушиться", как обычные пробелы. Например, оба

<p>Word1          Word2</p>

и

<p>Word1 Word2</p>

сделает то же самое в любом браузере, а

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

будет сохранять пробелы при визуализации.

Ответ 4

Не столько ответ, сколько примеры...

Пример № 1:

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

Пример № 2:

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

И ссылка на скрипку.

Ответ 5

Вы можете увидеть рабочий пример здесь:

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

а также

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

Тот же div, тот же текст, разные "пробелы"

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

против

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

Ответ 6

Несколько символов обычного пробела (пробел, табулятор и разрыв строки) рассматриваются как один символ пробела:

Для всех элементов HTML, кроме PRE, последовательности белого пространства разделяют "слова" (мы используем термин "слово" здесь для обозначения "последовательностей небелых пробелов"). При форматировании текста пользовательские агенты должны идентифицировать эти слова и выкладывать их в соответствии с соглашениями конкретного письменного языка (скрипта) и целевого носителя.

Так

foo    bar

отображается как

foo bar

Но пространство без разрыва всегда отображается. Так

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

отображается как

foo   bar

Ответ 7

Как уже упоминалось, вы не получите разрыв строки, где есть "свободное пространство".

Также будьте осторожны, что элементы, содержащие только "", могут отображаться некорректно, где & nbsp; будет работать. По крайней мере, в 6-м (насколько я помню, IE7 имеет ту же проблему), если у вас есть пустой элемент таблицы, он не будет применять стиль, например, границы, к элементу, если нет содержимого или только белый пространство. Таким образом, следующие границы не будут отображаться с помощью границ:

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

В то время как границы появятся в этом примере:

<td>& nbsp;</td>

Хм - нужно положить в фиктивное пространство, чтобы заставить его правильно отобразить здесь

Ответ 8

Существует много разных типов пространств, таких как тонкое пространство, пространство em, нераспространяющееся пространство... Джон Тан сделал запись наиболее распространенных в своем блоге.

Ответ 9

Первый не рассматривается как пробел с помощью парсера HTML, второй -. В результате "" не гарантируется отображение в определенной HTML-разметке, в то время как неизменяемое пространство всегда будет отображаться.

Ответ 10

@Зоидберг прав, Пример:

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

не будет отображаться пробел между разметкой заголовка,

& nbsp ; 

будет делать пробел:)

Ответ 11

&nbsp; следует обрабатывать как пробел.

&nbsp;&nbsp; следует обрабатывать как два пробела

'' можно обрабатывать как непрозрачный пробел

'' + '' может обрабатываться как одиночный ''

Ответ 12

При наличии разрывов строки линия не будет ломаться при использовании $bnsp; потому что это "неразрывное пространство". Это может быть важно, если у вас есть определенные названия продуктов или такие, которые всегда должны быть записаны вместе.

Может быть интересно, если вы (должны) использовать пробел в качестве разделителя в цифрах, например 12344567, который отображается во Франции 34 344 567. Без линия сломалась бы в середине числа, очень уродливая. Тест: 12 344 567

Ответ 13

&nbsp; является стебельным, что означает, что вы можете создавать несколько пространств вместе.

HTML будет обрабатывать только одно пространство '', и оно оставляет все остальное...

Если вы хотите пять пробелов, вы должны разместить 5 x &nbsp;

Ответ 14

TL;DR; В дополнение к принятому ответу; Один неявный, а другой явный.

Когда HTML, который вы написали или сгенерировали приложением/библиотекой/фреймворком, читается вашим браузером, он лучше всего интерпретирует, что имел в виду ваш HTML (который может варьироваться в зависимости от браузера). Когда вы используете коды сущностей HTML, вы более специфичны для браузера. Вы явно говорите, что хотите отобразить символ для пользователя (а не то, что вы просто размещаете свой HTML-код для удобства чтения, например для разработчика).

Чтобы быть более конкретным, если бы выходной HTML был:

<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>

Браузер отображает только один пробел между всеми этими словами (даже те, которые были сделаны с отступом для лучшей читабельности для разработчика).

Однако, если вы поставили то же самое и изменили только <p> на:

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

Тогда он будет отображать пробелы, как вы указали это более явно. Существует некоторая история использования этих пространств для стилизации. Это использование было несколько уменьшено, поскольку CSS повзрослел. Тем не менее, все еще существуют допустимые варианты использования многих сущностей символов HTML: избегание непредвиденной/непреднамеренной интерпретации (например, если вы хотите отобразить код). У w3 есть отличная страница для отображения других кодов символов.