HTML5 лучшие практики;элементы section / header / aside / article - PullRequest
522 голосов
/ 24 января 2011

В Интернете достаточно информации о HTML5 (а также о стековом потоке), но теперь мне интересно узнать о «лучших практиках».Такие теги, как section / headers / article, являются новыми, и у всех разные мнения о том, когда и где вы должны использовать эти теги.Так что вы, ребята, думаете о следующем макете и коде?

Website layout

  1  <!doctype html>
  2      <head>
  3          <title>Website</title>
  4      </head>
  5  
  6      <body>
  7          <section>
  8              <header>
  9                  <div id="logo"></div>
 10                  <div id="language"></div>
 11              </header>
 12  
 13              <nav>
 14                  <ul>
 15                      <li>menu 1</li>
 16                      <li>menu 2</li>
 17                      <li>menu 3</li>
 18                      <li>menu 4</li>
 19                      <li>menu 5</li>
 20                  </ul>
 21              </nav>
 22  
 23              <div id="main">
 24                  <div id="main-left">
 25                      <article>
 26                          <header><h1>This is a title</h1></header>
 27  
 28                          <p>Lorem ipsum dolor sit amet, consectetur
 29                          adipiscing elit. Quisque semper, leo eget</p>
 30  
 31                          <p>Lorem ipsum dolor sit amet, consectetur
 32                          adipiscing elit. Quisque semper, leo eget</p>
 33  
 34                          <p>Lorem ipsum dolor sit amet, consectetur
 35                          adipiscing elit. Quisque semper, leo eget</p>
 36  
 37                          <p>Lorem ipsum dolor sit amet, consectetur
 38                          adipiscing elit. Quisque semper, leo eget</p>
 39                      </article>
 40                  </div>
 41  
 42                  <div id="main-right">
 43                      <section id="main-right-hot">
 44                          <h2>Hot items</h2>
 45                          <ul>
 46                              <li>Lorem ipsum</li>
 47                              <li>dolor sit</li>
 48                              <li>...</li>
 49                          </ul>
 50                      </section>
 51  
 52                      <section id="main-right-new">
 53                          <h2>New items</h2>
 54                          <ul>
 55                              <li>Lorem ipsum</li>
 56                              <li>dolor sit</li>
 57                              <li>...</li>
 58                          </ul>
 59                      </section>
 60                  </div>
 61              </div>
 62  
 63              <div id="news-items">
 64                  <header><h2>The latest news</h2></header>
 65  
 66                  <div id="item_1">
 67                      <article>
 68                          <header>
 69                              <img src="#" title="titel artikel" />
 70                              <h3>Lorem ipsum .....</h3>
 71                          </header>
 72                          <p>Lorem ipsum dolor sit amet,
 73                          adipiscing elit. Quisque semper, </p>
 74                          <a href="#">Read more</a>
 75                      </article>
 76                  </div>
 77  
 78  
 79                  <div id="item_2">
 80                      <article>
 81                          <header>
 82                              <img src="#" title="titel artikel" />
 83                              <h3>Lorem ipsum .....</h3>
 84                          </header>
 85                          <p>Lorem ipsum dolor sit amet,
 86                          adipiscing elit. Quisque semper, </p>
 87                          <a href="#">Read more</a>
 88                      </article>
 89                  </div>
 90  
 91  
 92                  <div id="item_3">
 93                      <article>
 94                          <header>
 95                              <img src="#" title="titel artikel" />
 96                              <h3>Lorem ipsum .....</h3>
 97                          </header>
 98                          <p>Lorem ipsum dolor sit amet,
 99                          adipiscing elit. Quisque semper, </p>
100                          <a href="#">Read more</a>
101                      </article>
102                  </div>
103              </div>
104  
105              <footer>
106                  <ul>
107                      <li>menu 1</li>
108                      <li>menu 2</li>
109                      <li>menu 3</li>
110                      <li>menu 4</li>
111                      <li>menu 5</li>
112                  </ul>
113              </footer>
114          </section>
115      </body>
116  </html>

строка 7. section по всему сайту?Или только div?

строка 8. Каждый section начинается с header?

строка 23. Правильно ли это div?или это должна быть строка section?

24. Разбить левый / правый столбец с помощью строки div.

25. Правильное место для тега article?

строка 26. Обязательно ли указывать ваш h1 -tag в header -tag?

в строке 43. Содержимое не связано с основной статьей, поэтому я решил, что этоsection, а не aside.

строка 44. H2 без header

строка 53. section без header

строка 63. Divсо всеми (не связанными) новостями

строка 64. header с h2

строка 65. Хм, div или section?Или удалите этот div и используйте только строку article -tag

105. Нижний колонтитул: -)

Ответы [ 16 ]

2 голосов
/ 28 мая 2018
<body itemscope itemtype="http://schema.org/Blog">
 <header>
  <h1>Wake up sheeple!</h1>
  <p><a href="news.html">News</a> -
     <a href="blog.html">Blog</a> -
     <a href="forums.html">Forums</a></p>
  <p>Last Modified: <span itemprop="dateModified">2009-04-01</span></p>
  <nav>
   <h1>Navigation</h1>
   <ul>
    <li><a href="articles.html">Index of all articles</a></li>
    <li><a href="today.html">Things sheeple need to wake up for today</a></li>
    <li><a href="successes.html">Sheeple we have managed to wake</a></li>
   </ul>
  </nav>
 </header>
 <main>
  <article itemprop="blogPosts" itemscope itemtype="http://schema.org/BlogPosting">
   <header>
    <h1 itemprop="headline">My Day at the Beach</h1>
   </header>
   <div itemprop="articleBody">
    <p>Today I went to the beach and had a lot of fun.</p>
    ...more content...
   </div>
   <footer>
    <p>Posted <time itemprop="datePublished" datetime="2009-10-10">Thursday</time>.</p>
   </footer>
  </article>
  ...more blog posts...
 </main>
 <footer>
  <p>Copyright ©
   <span itemprop="copyrightYear">2010</span>
   <span itemprop="copyrightHolder">The Example Company</span>
  </p>
  <p><a href="about.html">About</a> -
     <a href="policy.html">Privacy Policy</a> -
     <a href="contact.html">Contact Us</a></p>
 </footer>
</body>

https://www.w3.org/TR/2014/REC-html5-20141028/sections.html#the-nav-element

1 голос
/ 27 августа 2014

„строка 23. Верно ли это? или это должен быть раздел? "

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

<main>
    <!-- The main content -->
</main>

http://www.w3.org/html/wg/drafts/html/master/grouping-content.html#the-main-element

1 голос
/ 11 сентября 2013

РЕДАКТИРОВАТЬ: К сожалению, я должен исправить себя.

См. Ниже https://stackoverflow.com/a/17935666/2488942 для ссылки на спецификации w3, которые включают пример (в отличие от тех, на которые я смотрел ранее).

Но тогда .... Здесь хорошая статья об этом благодаря @ Fez.

Мой первоначальный ответ был:

Как структурированы спецификации w3:

4.3.4. Секции

4.3.4.1 Элемент тела

4.3.4.2 Элемент сечения

4.3.4.3 Навигационный элемент

4.3.4.4 Элемент статьи

....

подсказывает мне, что section является более высоким уровнем, чем article. Как упоминалось в , этот ответ section группирует тематически связанный контент. Содержание в статье, на мой взгляд, в любом случае связано с тематикой, поэтому, по крайней мере, для меня это означает, что section групп на более высоком уровне по сравнению с article.

Я думаю, это должно быть использовано так:

section: Chapter 1
    nav: Ch. 1.1
         Ch. 1.2

    article: Ch. 1.1
             some insightful text

    article: Ch. 1.2
             related to 1.1 but different topic

или для новостного сайта:

section: News
    article: This happened today
    article: this happened in England

section: Sports
    article: England - Ukraine 0:0
    article: Italy books tickets to Brazil 2014
1 голос
/ 19 июля 2011

Не думаю, что вы должны использовать тег в сводке новостей (строки 67, 80, 93). Вы можете использовать раздел или просто иметь вложенный div.

Статья должна быть в состоянии стоять самостоятельно и все еще иметь смысл или быть законченной. Будучи неполной или просто выдержкой, она не может быть статьей, а скорее разделом.

Когда вы нажимаете «читать дальше», следующая страница может

0 голосов
/ 21 декабря 2016

Согласно ответу Натана , это имеет смысл (для красных и оранжевых частей, возможно, вы могли бы использовать div s и / или header и footer соответственно):

enter image description here

0 голосов
/ 14 августа 2015

Я хочу уточнить этот вопрос более точно, поправьте меня, если я ошибаюсь. Давайте возьмем пример стены Facebook

1. Стена имеет тег "section", который обозначает, что он отделен от страницы.

2.Все посты идут под тегом "article".

3. Тогда у нас есть один пост, который входит в тег "section".

3. У нас есть заголовокX пользователь публикует это «для этого мы можем использовать тег« заголовок ».

4.Внутри поста у нас есть три раздела, один из которых -« Изображения / текст », кнопка« Нравится поделиться »и поле комментария.1012 * 5.Для комментария мы можем использовать тег статьи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...