@schmuckk

Вложение тегов html?

Почему если я вкладываю элемент списка или элемент картинка в блок параграфа, в дереве документа эти элементы все равно отражаются как отдельные элементы, а не как дочерние? Так и должно быть и мне просто с этим смириться? Или такие элементы нельзя вкладывать в блок параграфа?
  • Вопрос задан
  • 217 просмотров
Решения вопроса 1
Lynn
@Lynn
nginx, js, css
Не все элементы можно вкладывать в какие-то другие элементы.

В частности в тег <p> можно вкладывать только строчные элементы.

Формальное описание что можно вкладывать в тег можно посмотреть в спецификации или MDN.

В частности для <p> там написано «Разрешённое содержимое: фразовый контент».

В случае неправильного вложения браузер пытается починить DOM-дерево как может (на самом деле по определённым правилам которые тоже есть в спецификации) и чаще всего он просто закрывает теги до тех пор пока не получит не доберётся до родителя в котором данный контент разрешён.

UPD: Вопрос на самом деле довольно неочевидный для новичков, так что есть полезный сайт https://caninclude.glitch.me/caninclude?child=ul&p...
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@Stung
Программист
Элементы должны находиться внутри блока параграфа , тогда обращаясь через сам блок к элементам у вас получится изменять элементы внутри самого блока.
Ответ написан
Комментировать
Stalker_RED
@Stalker_RED
Открываешь спецификацию html (или идешь на mdn, удобно через гугл "mdn paragraph").
Смотришь там какой контент можно размещать в <P>
Permitted content Phrasing content.


Смотришь что такое "Phrasing content" и выясняешь, что да, списки нельзя вставлять в абзац, а вот img, picture и даже canvas вполне можно.

Итого: в вопросе ошибка, "картинки" вполне себе вставляются, но да - в html довольно много семантических ограничений, нельзя вставлять что угодно во что угодно.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
01 мая 2024, в 11:20
5000 руб./за проект
01 мая 2024, в 10:55
3000 руб./за проект
01 мая 2024, в 10:55
3000 руб./за проект