Следует ли вообще использовать семантическую разметку HTML 5 для стилизации?

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

<header>
<nav>
<section>
<article>
<aside>
<footer>

использование семантических элементов предоставляет UA информацию, которую он обычно не мог получить от <div>, но должны ли они использоваться вместе с <div> теги или можете / должны ли вы напрямую стилизовать семантическую разметку?

другими словами, каков правильный подход?

Это:

<div id="content">
    <section>
        <h1>Lorem ipsum></h1>
        <p>Text</p>
    </section>
</div>

или такой:

<section id="content">
    <h1>Lorem ipsum></h1>
    <p>Text</p>
</section>

5 ответов


Если вы используете теги семантической разметки, вы также не должны использовать теги разделения для того же самого. Семантические теги являются заменой некоторых тегов div.

теги div, конечно, по-прежнему полезны, когда нет семантического тега, который подходит.


Я считаю, что ваш первый пример семантически корректен, предполагая, что у вас будет больше section теги в div тег.

на div тег будет означать раздел страницы, который предназначен для содержимого, а затем section тег что-то вроде должности.


вот хорошая статья об этой проблеме: http://www.nczonline.net/blog/2011/03/22/using-html5-semantic-elements-today/

По данным Zakas (Тантэк Челик на самом деле), это путь:

<section><div class="section">
   <!-- content -->
</div></section>

цитата из сообщения в блоге ниже относительно стиля:

для стилизации Tantek рекомендовал не пытаться стилизовать элемент HTML5 сам по себе, а скорее в стиле суррогата. Так что вместо это:

section {
    color: blue;
}

используйте этот:

.section {
    color: blue;
}

поскольку новые теги не являются универсально признанными браузерами, даже в качестве кандидатов для стиля, используя div с class безопаснее. У вас также есть возможность использовать просто div с class как и раньше, и вы ничего не потеряете сейчас, ни в обозримом будущем. Никакое программное обеспечение не заботится о" семантике " новых тегов.


первый пример более безопасен в использовании.

<section>
  <h1>Lorem ipsum></h1>
  <p>Text</p>
</section>

содержание.

для того, чтобы стиль этого контента вы можете обернуть его внутри контейнера, например. div с крючком стиля (класс) и применить стиль к нему.