В чем разница между "" и " "?
оба они означают места, но есть ли разница?
13 ответов:
один неразрывный пробел а другой-это регулярное пространство. Неразрывное пространство означает, что линия не должна быть обернута в этой точке, точно так же, как она не была бы обернута в середине слова.
кроме того, как указывает Свенд в своем комментарии, неразрывные пространства не свернуты.
сущности
создает неразрывное пространство, которое используется, когда вы не хотите автоматического разрыва линии в этом положении. Регулярное пространство имеет код символа 32, в то время как неразрывное пространство имеет код символа 160.
В дополнение к другим ответы, неразрывные пробелы не будут "свернуты", как обычные пробелы. Например, оба
<p>Word1 Word2</p>
и
<p>Word1 Word2</p>
будет отображать то же самое в любом браузере, в то время как
<p>Word1 Word2</p>
сохранит пробелы при визуализации.
не столько ответ, сколько примеры..
Пример 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>
и по ссылке скрипка.
несколько обычных пробелов (пробел, табулятор и разрыв строки) являются обрабатывается как один символ пробела:
для всех HTML-элементов, кроме
PRE
, последовательности пробелов разделяют " слова "(мы используем термин" слово "здесь, чтобы означать"последовательности небелых пробелов"). При форматировании текста агенты пользователей должны идентифицировать эти слова и раскладывать их в соответствии с соглашениями конкретного письменного языка (скрипта) и целевой носитель.так
foo bar
отображается как
foo bar
но без перерыва пространство всегда отображается. Так что
foo   bar
отображается как
foo bar
Как уже упоминалось, вы не получите строки, где есть "неразрывный пробел".
также будьте осторожны, что элементы, содержащие только "" может отображаться неправильно, где будет работать. В т. е. 6 по крайней мере (насколько я помню, IE7 имеет ту же проблему), если у вас есть пустой элемент таблицы, он не будет применять стиль, например границы, к элементу, если нет содержимого или только пробел. Так что следующий не станет границы:
<td></td> <td> <td>
в то время как границы будут отображаться в этом примере:
<td>& nbsp;</td>
Хм-пришлось поставить в фиктивное пространство, чтобы заставить его правильно визуализировать здесь
Вы можете увидеть рабочий пример здесь:
http://codepen.io/anon/pen/GJzBxo
и
http://codepen.io/anon/pen/LVqBQo
тот же div, тот же текст, разные "пробелы"
<div style="width: 500px; background: red"> [loooong text with spaces]</div>
vs
<div style="width: 500px; background: red"> [loooong text with ]</div>
есть много различных типов пространств, таких как тонкое пространство, em пространство, не нарушая пространство... Джон Тан сделал запись наиболее распространенных из них в своем блоге.
первый не обрабатывается как пробел синтаксическим анализатором HTML,второй. В результате "" не гарантируется отображение в определенной разметке HTML, в то время как неразрывное пространство всегда будет отображаться.
@Zoidberg прав, пример:
<h1>title</h1> <h2>date</h2>
не будет отображаться пространство между разметкой заголовка, с
& nbsp ;
сделает пространство :)
должен обрабатываться как пробел.
должны обрабатываться как два пробела' ' может обрабатываться как неинтересный пробел
' ' + ' 'можно обрабатывать как один''
при наличии разрывов строк линия не будет разрываться, когда вы используете $bnsp; потому что это "неразрывное пространство". Это может быть важно, если у вас есть определенные названия продуктов или такие, которые всегда должны быть написаны вместе.
может быть интересно, если вы (должны) использовать пробелы в качестве разделителя в числах, таких как 12344567, который отображается 12 344 567 во Франции. Без этого линия сломалась бы в середине числа, очень некрасиво. Тест:12 344 567