Обработка неиспользуемого пространства: <p> </p> vs. <p></p>
- это не разрывное пространство, представляющее пустое пространство, в котором не происходит разрыва строки.
Если я использую
<p> </p>
У меня есть пробел между двумя проходами (большой разрыв). Если я использую
<p> </p>
У меня есть только новая линия между двумя проходами (без перерыва). Почему?
Ответы
Ответ 1
В HTML элементы, содержащие ничего, кроме обычных пробельных символов, считаются пустыми. Абзац, содержащий только нормальный пробел, будет иметь нулевую высоту. Неразрывное пространство - это особый вид символа пробела, который не считается несущественным, поэтому его можно использовать как содержимое для непустого абзаца.
Даже если вы рассматриваете поля CSS в параграфах, поскольку "пустой" абзац имеет нулевую высоту, его вертикальные поля будут collapse. Это приводит к тому, что он не имеет высоты и не имеет полей, создавая впечатление, будто он никогда не был там.
Ответ 2
Как об обходном пути?
В моем случае я взял значение textarea в переменной jQuery и изменил все "<p> "
на <p class="clear">
и очистил класс, чтобы иметь определенную высоту и маржу, так как в следующем примере:
JQuery
tinyMCE.triggerSave();
var val = $('textarea').val();
val = val.replace(/<p> /g, '<p class="clear">');
Затем val сохраняется в базу данных с новым значением val.
CSS
p.clear{height: 2px; margin-bottom: 3px;}
Вы можете отрегулировать высоту и запас по вашему желанию.
А так как "p" - это элемент display: block. он должен дать вам ожидаемый результат.
Надеюсь, что это поможет!
Ответ 3
Если я понимаю вашу проблему, это должно работать
& emsp - пространство em; это должно быть очень широкое пространство, как правило, четыре реальных пространства.
& ensp - пространство en; это должно быть несколько широкое пространство, примерно два регулярных пространства.
& thinsp - это будет узкое пространство, еще более узкое, чем регулярное пространство.
Источники: http://hea-www.harvard.edu/~fine/Tech/html-sentences.html