Что является различием между “&nbsp”; и “”?

/* FIXME: documentation for the bellow functionality - and why are we doing it this way */

Это была огромная статистическая программа для приложения учета. Мы никогда не выясняли, почему она сделала это что - неправильно - путь. Но мы должны были переписать его и заплатили штраф за клиента.

132
задан SilentGhost 31 August 2009 в 12:25
поделиться

11 ответов

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

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

177
ответ дан 24 November 2019 в 00:08
поделиться

Объект & nbsp; создает неразрывный пробел, который используется, когда вам не нужен автоматический разрыв строки в этой позиции. Обычный пробел имеет код символа 32, а неразрывный пробел - код символа 160.

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

65
ответ дан 24 November 2019 в 00:08
поделиться

Не ответ, а примеры ...

Пример №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>

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

28
ответ дан 24 November 2019 в 00:08
поделиться

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

<p>Word1          Word2</p>

и

<p>Word1 Word2</p>

будут отображаться одинаково в любом браузере, а

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

сохранит пробелы при отображении.

45
ответ дан 24 November 2019 в 00:08
поделиться

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

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

Таким образом,

foo    bar

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

foo bar

Но неразрывный пробел всегда отображается. Итак,

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

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

foo   bar
6
ответ дан 24 November 2019 в 00:08
поделиться

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

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

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

В то время как границы будут отображаться в этом примере:

<td>& nbsp;</td>

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

5
ответ дан 24 November 2019 в 00:08
поделиться

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

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

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

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

1
ответ дан 24 November 2019 в 00:08
поделиться

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

2
ответ дан 24 November 2019 в 00:08
поделиться

  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  

1
ответ дан 24 November 2019 в 00:08
поделиться

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

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

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

& nbsp ; 

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

0
ответ дан 24 November 2019 в 00:08
поделиться

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

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

0
ответ дан 24 November 2019 в 00:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: