Ошибка проверки: ul не допускается как дочерний элемент span

Я не понимаю, почему валидатор WC3 помечает этот HTML как недействительный, ошибка, о которой он сообщает...

'' Элемент ul не допускается как дочерний элемент span в этом контексте. (Подавление дальнейших ошибок из этого поддерева.)''

Я использую HTML5, и этот код для хлебных крошек.

<span class="bread">
    <ul>
        <li><a href="./index.php">HOME</a></li>
        <li>ABOUT</li>
    </ul>
</span>

5 ответов

Решение

<span> по определению это встроенный элемент (например, вы используете его внутри абзаца), в то время как <ul> является блочным элементом (который является его собственным небольшим фрагментом пространства, обычно с пробелом до / после, в отличие от <span>).

У других людей была такая же проблема, и в итоге они использовали <div> теги вместо. См. Можно ли поместить список в тег span?

Согласно рекомендациям HTML5 <span> элемент может содержать только phrasing-контент. <ul> Элемент отсутствует в списке фраз контента тегов. Механизм проверки HTML обеспечивает соблюдение этих правил.

Вы можете использовать <div> в качестве контейнера вместо.

Если вы используете div как display:inline, он должен номинально соответствовать правилу, в то же время ведя себя как span:)

Если вы используете его в качестве крошки, это навигационный элемент, поэтому <nav> имеет смысл в качестве контейнера вашего <ul>, В противном случае, дать UL класс "хлебных крошек" <ul class="breadcrumb"> и стиль его в зависимости от его класса.

ИСПОЛЬЗОВАНИЕ <div>

<div class="bread">
    <ul>
        <li><a href="./index.php">HOME</a></li>
        <li>ABOUT</li>
    </ul>
</div>

вместо <span>

<span class="bread">
    <ul>
        <li><a href="./index.php">HOME</a></li>
        <li>ABOUT</li>
    </ul>
</span>
Другие вопросы по тегам