Jump to content
  • 0

Как пользоваться тегом <main>


PavelTkachev
 Share

Question

Хочу применять в сёрстке тег <main> и не могу понять как его применять правильно. Из описания я понял, что это тег для основного и уникального контента для данной страницы. Но как тогда его использовать с тегом <article>, ведь в нём данные контент должен также находиться?

 

Что-то на подобии:

<main>

<article>

<h1></h1>

<time></time>

</article>

</main>

 

Так?

 

И должен ли тег <h1> быть внутри <article>?

Link to comment
Share on other sites

Recommended Posts

  • 0
Элемент <main> предназначен для основного содержимого документа. Содержимое должно быть уникальным и не включать типовые блоки вроде шапки сайта, подвала, навигации, боковой панели, формы поиска и т. п.

 

 

Использую его как каркасный элемент для уникального содержания. Удобно.

Link to comment
Share on other sites

  • 0

main может быть только один в документе, включает в себя неповторяющий, основной контент. хедер, футер, асайд, навигация по сайту не должны входить в main. Но при этом навигация по документу может входить в main

  • Like 1
Link to comment
Share on other sites

  • 0

main может быть только один в документе, включает в себя неповторяющий, основной контент. хедер, футер, асайд, навигация по сайту не должны входить в main. Но при этом навигация по документу может входить в main

 

То есть правильно для двухколоночной вёрстки

 

<header></header>

<nav></nav>

<section>

<main>

<h1></h1>

<article>

<time></time>

<menu></menu>

</article>

</main>

<aside></aside>

</section>

<footer></footer>

 

Где <menu></menu> - это навигация по документу.

 

Правильно, что <h1> не внутри <article>?

Edited by PavelTkachev
Link to comment
Share on other sites

  • 0

Неправильно, двух колоночный макет должен выглядеть вот так (это моё мнение) 

<header></header> <nav></nav><main>    <section class="column-one">         <article>             <h1></h1>	     <aside></aside>	</article>	    </section>    <section class="column-two"> 	<article>	     <h1></h1>	     <aside></aside>	</article>	    </section> </main><footer></footer> 
Link to comment
Share on other sites

  • 0

Веселая получилась ситуация с новыми элементами, сколько людей столько мнений как их использовать, думаю

со временем народ просто забьет на них когда поймет что кроме головняка никакого профита, я во избежаний

разночтений стараюсь по минимуму их использовать.

Link to comment
Share on other sites

  • 0

 

Неправильно, двух колоночный макет должен выглядеть вот так (это моё мнение) 

<header></header> <nav></nav><main>    <section class="column-one">         <article>             <h1></h1>	     <aside></aside>	</article>	    </section>    <section class="column-two"> 	<article>	     <h1></h1>	     <aside></aside>	</article>	    </section> </main><footer></footer> 

 

Но не будет уникальности в <main>, так как <aside> содержит одинаковые для всех страниц данные.

А зачем <section>?

Link to comment
Share on other sites

  • 0
То есть правильно для двухколоночной вёрстки

main внутри section мне кажется вообще бредок :)

 

Но не будет уникальности в

, так как

содержит одинаковые для всех страниц данные. А зачем

?

aside это не обязательно сайдбар. Точнее это вообще скорее всего не сайдбар (если уж кому-то хочется в корень упороться сематикой-шмемантикой)

 

Я бы писал как-то так:

<header></header><nav>    <a href="page-1.html"></a>    <a href="page-2.html"></a>    <a href="page-3.html"></a></nav><main>    <h1></h1>    <p></p>    <p></p>    <p></p>    <h2></h2>    <p></p>    <p></p>    <p></p></main><div class="side">    <nav>        <a href="sub/page-1.html"></a>        <a href="sub/page-2.html"></a>        <a href="sub/page-3.html"></a>    </nav></div><footer>copy</footer>

Если же в сайдбаре находится информация привязанная к контенту, сноска или навигация по конкретному документу, то тогда это скорее всего aside

<header></header><nav>    <a href="page-1.html"></a>    <a href="page-2.html"></a>    <a href="page-3.html"></a></nav><main>    <div>        <h1 id="root-header"></h1>        <p></p>        <p></p>        <p></p>        <h2 id="sub-header"></h2>        <p></p>        <p></p>        <p></p>    </div>    <aside>        <nav>            <a href="#root-header"></a>            <a href="#sub-header"></a>        </nav>    </aside></main><footer>copy</footer>

А если по правде, то я не сильно заморачиваюсь семантикой-шмемантикой в принципе. Если мне нужен сайдбар, я применяю aside. Основную часть документа обхватываю в main. Статьи/комменты/посты отделяю в article. Целые разделы/главы если такие существуют в документе в принципе выделяю в section

 

Если статья имеет явно выраженную шапку и подвал, то как-то так это может выглядеть

<article>    <header>        <h1></h1>    </header>    <p></p>    <p></p>    <p></p>    <footer>        Autor Name | Public Date    </footer></article>

А если еще серьезнее подходить к проблеме, то скажем так... нынче контент лепят ну через такой "коаксиальный проход" что его вообще проблематично как-то внятно идентифицировать. Так что в определенный момент просто забиваешь на это все и просто пишешь так как тебе удобно. вот и все.

Link to comment
Share on other sites

  • 0

artcile не для разделов. 

Да объясните вы ему  :angry:

 

Не для них. ^_^

 

А как насчёт <main>? Внутри него должно быть уникальное содержимое.

 

То есть правильно для двухколоночной вёрстки

main внутри section мне кажется вообще бредок :)

 

 

 

Но не будет уникальности в

 

, так как

содержит одинаковые для всех страниц данные. А зачем

?

aside это не обязательно сайдбар. Точнее это вообще скорее всего не сайдбар (если уж кому-то хочется в корень упороться сематикой-шмемантикой)

 

Я бы писал как-то так:

<header></header><nav>    <a href="page-1.html"></a>    <a href="page-2.html"></a>    <a href="page-3.html"></a></nav><main>    <h1></h1>    <p></p>    <p></p>    <p></p>    <h2></h2>    <p></p>    <p></p>    <p></p></main><div class="side">    <nav>        <a href="sub/page-1.html"></a>        <a href="sub/page-2.html"></a>        <a href="sub/page-3.html"></a>    </nav></div><footer>copy</footer>

Если же в сайдбаре находится информация привязанная к контенту, сноска или навигация по конкретному документу, то тогда это скорее всего aside

<header></header><nav>    <a href="page-1.html"></a>    <a href="page-2.html"></a>    <a href="page-3.html"></a></nav><main>    <div>        <h1 id="root-header"></h1>        <p></p>        <p></p>        <p></p>        <h2 id="sub-header"></h2>        <p></p>        <p></p>        <p></p>    </div>    <aside>        <nav>            <a href="#root-header"></a>            <a href="#sub-header"></a>        </nav>    </aside></main><footer>copy</footer>

А если по правде, то я не сильно заморачиваюсь семантикой-шмемантикой в принципе. Если мне нужен сайдбар, я применяю aside. Основную часть документа обхватываю в main. Статьи/комменты/посты отделяю в article. Целые разделы/главы если такие существуют в документе в принципе выделяю в section

 

Если статья имеет явно выраженную шапку и подвал, то как-то так это может выглядеть

<article>    <header>        <h1></h1>    </header>    <p></p>    <p></p>    <p></p>    <footer>        Autor Name | Public Date    </footer></article>

А если еще серьезнее подходить к проблеме, то скажем так... нынче контент лепят ну через такой "коаксиальный проход" что его вообще проблематично как-то внятно идентифицировать. Так что в определенный момент просто забиваешь на это все и просто пишешь так как тебе удобно. вот и все.

 

 

Вопсрос не о том, как сейчас пишут. А о том, как писать в соответствии с назначениями тегов.

 

Цитирую описание с этого сайта:

Элемент <main> предназначен для основного содержимого документа. Содержимое должно быть уникальным и не включать типовые блоки вроде шапки сайта, подвала, навигации, боковой панели, формы поиска и т. п.

 

Поэтому <aside> в <main> никак не помещается.

 

Вот у получилось у меня, что основная колонка в двухколоночной вёрстке - это <main>, а боковая панель - <aside>. Но надо же это всё поместить в какой-то общий контейнер. Согласен, что <section> - это плохой вариант. Для шапки есть <header>, для подвала - <footer>. А для центра что?

Link to comment
Share on other sites

  • 0

Вот и я не понимаю, потому и спрашиваю. Он же есть, значит для чего-то нужен. Я вначале думал, что <main> - это как раз для центра сайта. А узнав о требованиях уникальности перестал понимать что использовать для центра сайта и зачем <main>. Подскажите, пожалуйста.


Напомню простую двухколоночную вёрстку описанной мною выше.

 

<header></header>

<nav></nav>

<section>

<main>

<h1></h1>

<article>

<time></time>

<menu></menu>

</article>

</main>

<aside></aside>

</section>

<footer></footer>

 

Что вместо <section>?

Должен ли быть <h1> внутри <article>?

Link to comment
Share on other sites

  • 0
Цитирую описание с этого сайта: Элемент

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

Эту цитату вообще непонятно откуда взяли, если честно. в спеке такого нету http://www.w3.org/TR/2012/WD-html-main-element-20121217/

точнее нечто подобное есть, но это относится к хедерам, футерам и прочему что относится к сайту вцелом, а не к документу конкретно

  • Like 1
Link to comment
Share on other sites

  • 0

Просто если там и навигации не должно быть, что тогда я не понимаю чем он от <article> отличается?

 

 

<header></header>

<nav></nav>

<section>

<main>

<h1></h1>

<time></time>

</main>

<aside></aside>

<menu></menu>

</section>

<footer></footer>

Link to comment
Share on other sites

  • 0
Вот и я не понимаю, потому и спрашиваю. Он же есть, значит для чего-то нужен. Я вначале думал, что

- это как раз для центра сайта. А узнав о требованиях уникальности перестал понимать что использовать для центра сайта и зачем. Подскажите, пожалуйста.

 

 

Не знаешь что использовать - используй div

Link to comment
Share on other sites

  • 0

думаю в большинстве лэндингов он будет почти как body за исключением header и footer

А зачем если там сектион просится везде, делать лишнюю обертку для сектион я не вижу смысла.

Я вот внутри сектион пользуюсь дивами чтобы не было разночтений.

Edited by Sergik+
Link to comment
Share on other sites

  • 0

 

Цитирую описание с этого сайта: Элемент

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

Эту цитату вообще непонятно откуда взяли, если честно. в спеке такого нету http://www.w3.org/TR/2012/WD-html-main-element-20121217/

точнее нечто подобное есть, но это относится к хедерам, футерам и прочему что относится к сайту вцелом, а не к документу конкретно

 

 

Спасибо за ссылку. Примеры, правда, там все одноколоночные.

 

И вроде как

<header></header>

<nav></nav>

<main>

<article>

<h1></h1>

<time></time>

</article>

<aside></aside>

<menu></menu>

</main>

<footer></footer>

 

Не противоречит тому, что я там прочитал.

Link to comment
Share on other sites

  • 0

 

Вот и я не понимаю, потому и спрашиваю. Он же есть, значит для чего-то нужен. Я вначале думал, что

 

- это как раз для центра сайта. А узнав о требованиях уникальности перестал понимать что использовать для центра сайта и зачем. Подскажите, пожалуйста.

 

 

Не знаешь что использовать - используй div

 

 

 

<div> не имеет эстетического привкуса семантики. ^_^

Link to comment
Share on other sites

  • 0

 

 

Вот и я не понимаю, потому и спрашиваю. Он же есть, значит для чего-то нужен. Я вначале думал, что

 

- это как раз для центра сайта. А узнав о требованиях уникальности перестал понимать что использовать для центра сайта и зачем. Подскажите, пожалуйста.

 

 

Не знаешь что использовать - используй div

 

 

 

<div> не имеет эстетического привкуса семантики. ^_^

 

Есть и другое мнение что излишнее использование новых тегов это тоже не совсем хорошо.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy