SLIM h3 внутри p

Если я хочу поместить тег заголовка h1..h5 в p, он неправильно отображает HTML:

стройное

p
  h3 Header here
  span Just text

ожидал

<p>
   <h3>Header here</h3>
  <span>Just text</span>
</p>

на самом деле это рендер

<p></p>
  <h3>Header here</h3>
  <span>Just text</span>
<p></p>

похоже, ничего особенного, но в этом случае я не могу привязать стиль CSS, потому что структура рендерится некорректно.

Это ошибка? Или я могу как-то это решить?


person Oleg Sobchuk    schedule 19.03.2017    source источник


Ответы (2)


Вы не можете определять теги типа h3 и span внутри тега p. Дополнительную информацию см. В спецификации HTML5.

person Ilya    schedule 19.03.2017

Сам Slim не заботится о тегах и отображает ваш код так, как вы ожидаете:

$ slimrb
p
  h3 Header here
  span Just text

производит:

<p><h3>Header here</h3><span>Just text</span></p>

который соответствует вашему ожидаемому коду, за исключением пробелов.

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

<p></p>
<h3>Header here</h3>
<span>Just text</span>
<p></p>

Если браузер закрыл элемент p перед следующим элементом h3.

Если вы хотите, чтобы это работало в браузере, убедитесь, что вы создаете действительный HTML. Может быть, использовать div вместо p?

person matt    schedule 19.03.2017