Всегда ли правильно заполнять слот шаблона HTML элементом, не разрешенным в родительском слоте? - PullRequest
0 голосов
/ 29 ноября 2018

В простейшем примере из <template> и <slot> в MDN, они используют этот шаблон:

<template id="my-paragraph">
    <p><slot name="my-text">My default text</slot></p>
</template>

, а затем заполните слот следующим образом:

<my-paragraph>
  <ul slot="my-text">
    <li>Let's have some different text!</li>
    <li>In a list!</li>
  </ul>
</my-paragraph>

Это привлекло мое внимание, потому что обычно <ul> не допускается внутри <p>.Я искал разъяснения относительно того, было ли это обоснованным или целесообразным, и не нашел ничего, что касалось этого.

Является ли допустимым и / или целесообразным для выполнения подобных действий?Существуют ли случаи недопустимых детей, которые также не допускаются, когда они являются только детьми косвенно через Shadow DOM?

1 Ответ

0 голосов
/ 29 ноября 2018

Мое настоящее лучшее предположение состоит в том, что по крайней мере этот пример полностью подходит.Проблема с <ul> внутри <p> связана исключительно с анализом HTML-тегов, а не со структурой документа;когда вы делаете

<p><ul></ul></p>

напрямую, синтаксический анализатор неявно закрывает абзац при запуске списка, и валидатор жалуется на то, что </p> на самом деле не имеет <p>.Таким образом, единственный актуальный вопрос в игре заключается в том, хороши ли эти две конструкции по отдельности:

<p><slot></slot></p>

<my-paragraph><ul></ul></my-paragraph>

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

...