/* FIXME: documentation for the bellow functionality - and why are we doing it this way */
Это была огромная статистическая программа для приложения учета. Мы никогда не выясняли, почему она сделала это что - неправильно - путь. Но мы должны были переписать его и заплатили штраф за клиента.
Одно - это неразрывное пространство , а другое - обычное пространство. Неразрывный пробел означает, что строку не следует переносить в этот момент, как и в середине слова.
Кроме того, как указывает Свенд в своем комментарии, неразрывные пробелы не являются рухнул.
Объект & nbsp;
создает неразрывный пробел, который используется, когда вам не нужен автоматический разрыв строки в этой позиции. Обычный пробел имеет код символа 32, а неразрывный пробел - код символа 160.
Например, когда вы отображаете числа с пробелом в качестве разделителя тысяч: 1 234 567, тогда вы используете неразрывные пробелы, чтобы номер не может быть разделен на отдельные строки. Если вы отображаете валюту и между суммой и валютой есть пробел: 42 SEK, то вы используете неразрывный пробел, чтобы не отображать сумму в одной строке, а валюту - в следующей.
Не ответ, а примеры ...
Пример №1:
<div style="width:45px; height:45px; border: solid thin red; overflow: visible">
Hello There
</div>
Пример №2:
<div style="width:45px; height:45px; border: solid thin red; overflow: visible">
Hello There
</div>
В дополнение к другие ответы здесь, неразрывные пробелы не будут «свертываться», как обычные пробелы. Например,
<p>Word1 Word2</p>
и
<p>Word1 Word2</p>
будут отображаться одинаково в любом браузере, а
<p>Word1 Word2</p>
сохранит пробелы при отображении.
Несколько обычных символов пробела (пробел, табуляция и разрыв строки) обрабатываются как один символ пробела :
Для всех элементов HTML, кроме
PRE
, последовательности пробелов разделяют «слова» (мы используем термин «слово» здесь для обозначения «последовательности символов, отличных от пробелов»). При форматировании текста пользовательские агенты должны идентифицировать эти слова и размещать их в соответствии с соглашениями конкретного письменного языка (сценария) и целевого носителя.
Таким образом,
foo bar
отображается как
foo bar
Но неразрывный пробел всегда отображается. Итак,
foo   bar
отображается как
foo bar
Как уже упоминалось, вы не получите разрыв строки там, где есть «неразрывный пробел».
Также будьте осторожны, это элементы, содержащие только "", могут отображаться неправильно, где & nbsp; будет работать. По крайней мере, в 6 (насколько я помню, у IE7 такая же проблема), если у вас есть пустой элемент таблицы, он не будет применять стили, например границы, к элементу, если нет содержимого или только белый пространство. Таким образом, следующее не будет отображаться с границами:
<td></td>
<td> <td>
В то время как границы будут отображаться в этом примере:
<td>& nbsp;</td>
Хмм-нужно было вставить фиктивное пространство, чтобы оно здесь отображалось правильно
& nbsp;
следует обрабатывать как пробел.
& nbsp; & nbsp;
следует обрабатывать как два пробела.
'' можно рассматривать как неинтересный пробел
'' + '' можно обрабатывать как одиночный ''
Первый не обрабатывается анализатором HTML как пробел, второй -. В результате не гарантируется, что "" будет отображаться в определенной разметке HTML, в то время как неразрывное пространство будет отображаться всегда.
is stackable, meaning you can create multiple spaces all together.
HTML will only parse one space '' and it drops the rest...
If you want five spaces, you would place 5 x
@ Зойдберг прав, пример:
<h1>title</h1> <h2>date</h2>
не будет отображать пробел между разметкой заголовка, а
& nbsp ;
будет делать пробел :)
При наличии разрывов строки строка не будет прервана при использовании $ bnsp; потому что это «неразрывное пространство». Это может быть важно, если у вас есть определенные названия продуктов или такие, которые всегда должны записываться вместе.
Может быть интересно, если вы (должны) использовать пробел в качестве разделителя в числах, например 12344567, который отображается 12 344 567 во Франции. Без этой линии линия обрывалась бы в середине числа, очень некрасиво. Тест: 12 344 567