Jump to content
  • 0

{html 5} menu или nav


Demoni
 Share

Question

13 answers to this question

Recommended Posts

  • 0

Если меню не для навигации, то почему вложенные в меню элементы списка становятся маркерованными?

А списком может быть только навигация? Список !== навигация. К тому же навигация понятие обширное. Мы говорим про навигационные(по сайту) ссылки.

Link to comment
Share on other sites

  • 0

Задался тут вопросом, а что же семантичнее при построении главного меню сайта? Тег "menu" или тег "nav"? Полазил по w3c, толком ответа не нашел, из тех кто уже на html5 пишет, кто что юзает?

Viper тебе верно все сказал.

nav — навигация. Причем согласно спецификации не всякая, но основаная.

http://www.w3.org/TR/2011/WD-html5-20110525/sections.html#the-nav-element

The nav element represents a section of a page that links to other pages or to parts within the page: a section with navigation links.

Not all groups of links on a page need to be in a nav element — the element is primarily intended for sections that consist of major navigation blocks. In particular, it is common for footers to have a short list of links to various pages of a site, such as the terms of service, the home page, and a copyright page. The footer element alone is sufficient for such cases; while a nav element can be used in such cases, it is usually unnecessary.

mеnu — контекстное меню нарпимер или тулбар.

http://www.w3.org/TR/2011/WD-html5-20110525/interactive-elements.html#the-menu-element

The menu element represents a list of commands.

The type attribute is an enumerated attribute indicating the kind of menu being declared. The attribute has three states. The context keyword maps to the context menu state, in which the element is declaring a context menu. The toolbar keyword maps to the toolbar state, in which the element is declaring a toolbar. The attribute may also be omitted. The missing value default is the list state, which indicates that the element is merely a list of commands that is neither declaring a context menu nor defining a toolbar.

  • Like 1
Link to comment
Share on other sites

  • 0

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

Со слов Viper'a меню может использоваться для : "проигрывателей, чата, сложного календаря или, например, доски для рисования" , но не во всех из перечисленных присутствует необходимость использования списков, а вот menu маркерует их, тем самым предполагает в себе обязательное их содержания. Ну логично же. :blush:

Link to comment
Share on other sites

  • 0
предполагает в себе обязательное их содержания.

Не понял эту сентенцию. Поясни.

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

  • Like 1
Link to comment
Share on other sites

  • 0

Со слов Viper'a меню может использоваться для : "проигрывателей, чата, сложного календаря или, например, доски для рисования" , но не во всех из перечисленных присутствует необходимость использования списков

Список понятие обширное), тем более его представление. Например: у нас есть самописный проигрыватель чего-либо, у которого есть меню со списком(набором) кнопок/команд/функций.

У календаря может быть меню со списком выбора просмотра: даты, важных личных или исторических событий, отображение только "года" или ваших заметок с БД.

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

Edited by Viper
Link to comment
Share on other sites

  • 0

Если в меню сделали маркеровку списка, значит предполагали, что именно в этом элементе будут использовать списки. Почему не сделали маркеровку списков в дивах, потому что для этого есть ul и ol. А тут у нас есть меню, которое как и ol делает маркировку, но в него суют календари и чаты. Давайте засунем форму или чат в ul или ol, плевать, что они предполагают в себе использование других элементов.

Спецификацию прочитать я не в силах. Я знаю, что ошибаюсь, но не могу понять почему. Объяснять наверно не стоит, я просто усвоил: nav-навигация, menu-просто блочный элемент, улучшающий семантику.

Edited by moron
Link to comment
Share on other sites

  • 0

А тут у нас есть меню, которое как и ol делает маркировку, но в него суют календари и чаты. Давайте засунем форму или чат в ul или ol, плевать, что они предполагают в себе использование других элементов.

Та не приложение(чат, календарь, тд.) мы помещаем в <menu>, а только список(набор) его команд, кнопок..., если они там присутствуют и мы хотим придать им семантическую роль - Menu: динамическое меню управления чем-либо, не набор навигационных ссылок.

Edited by Viper
Link to comment
Share on other sites

  • 0

Почему не сделали маркеровку списков в дивах

Вы уверены, что не сделали? По-моему, маркеры у элементов списка внутри menu отображаются только потому, что в дефолтных стилях большинства браузеров есть правила наподобие "li { display: list-item; }", а свойство list-style-type по умолчанию имеет значение disc.

Link to comment
Share on other sites

  • 0

По спецификации <menu> — список команд. Команда — введенная в HTML5 абстракция, объединяющая кнопки, ссылки, опции select-ов, чекбоксы, радиобаттоны и всё такое прочее (всё, что при нажатии выполняет какое-то действие или меняет состояние).

У этого <menu> тёмное и запутанное прошлое. 300 15 лет назад, когда компьютеры были механическими большими, а веб использовался преимущественно для научных статей, <menu> и <dir> были аналогами <ul>, только "заточенными" под списки ссылок и файлов на диске соответственно. В этом качестве они не прижились, очень много лет оба были вне закона. Потом <dir> вымер напрочь, а <menu> нашел применение в веб-приложениях. Контекстные меню уже работают в Файрфоксе. Но дефолтное оформление в виде UL-списка — скорее всего следы его "бурной молодости", когда он был чисто презентационным элементом.

Спецификацию прочитать я не в силах.
Неправда. Прочитать ее, хотя бы со словарем, не так уж трудно. Вот разобраться в ней — да, задача... :)
menu-просто блочный элемент, улучшающий семантику.
В HTML5 нет блочных элементов. Есть секционные, структурные, текстовые, интерактивные и т.п. — в зависимости от назначения, а не от типа отображения. "Улучшать семантику" элементы не могут. Они могут ее иметь (то самое назначение) и использоваться либо семантически (в соответствии со своим назначением), либо как попало (не по назначению). Если нет уверенности, что использование элемента соответствует его назначению — имхо, меньшим злом будет использовать вместо него что-то семантически более нейтральное (хоть те же дивы).
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