<div class="navbar-center">
<div class="navbar-center__menu menu-mobile">
<div class="menu-mobile__icon">
<span class="menu-mobile__line">0</span>
</div>
<div class="menu-mobile__modal">
<div class="menu-mobile__header">
<div class="menu-mobile__header-title">Меню</div>
<div class="menu-mobile__header-close"></div>
</div>
<div class="menu-mobile__block">
<ul class="menu-mobile__list">
<li class="menu-mobile__item">
<span class=""></span>
</li>
<li class="menu-mobile__item"></li>
</ul>
</div>
</div>
</div>
</div>
Класс menu-mobile__block подходит
- Почему-то кнопка сделана div'ом.
- menu-mobile__header-close - хотите сказать, что open это отдельная кнопка? Так нет же. Это одна кнопка (а никакой не div) с модификаторами.
- navbar-center в любом дизайне он будет центр? Может, у него смысл какой-то есть?
Я просто на многих сайтах видел иконки меню в виде дивов и лебелов
<nav>
, в нем список <ul>
с дочерними <li>
, в который лежат ссылки <a>
.<button>
. а вот с моим примером показали бы ?
Именно с button это меню как лучше по классам назвать?
<button class="menu-toggle menu-toggle--open">
<span class="visually-hidden">Открыть/закрыть меню</span>
</button>
<!--если размытое пятно это лого-->
<a href="/" class="logo">
<img class="logo__img">
</a>
<a href="" class="search-btn">
<span class="visually-hidden">Открыть поиск по странице</span>
<!--сама лупа фоном или псевдо-->
</a>
<div class="navbar-center">
<div class="navbar-center__menu menu-mobile">
<button class="menu-toggle menu-toggle--open">
<span class="menu-mobile__line">0</span>
</button>
<div class="menu-mobile__modal">
<div class="menu-mobile__header">
<div class="menu-mobile__header-title">Меню</div>
<button class="menu-toggle menu-toggle--close menu-mobile__header-close"><svg class="icon-close"></svg></button>
</div>
<nav class="menu-mobile__content">
<ul class="menu-mobile__list">
<li class="menu-mobile__item">
<a class="menu-mobile__link" href="#">link</a>
</li>
<li class="menu-mobile__item">
<a class="menu-mobile__link" href="#">link</a>
</li>
</ul>
</nav>
</div>
</div>
</div>
В вашем видео там больше про семантику рассказывается nav>ul>li, чем про БЭМ
а могли бы показать как вы считаете более семантически правильно на моем примере ?
покажите как правильно
<header class="header">
<button class="menu-toggle menu-toggle--open">
<span class="visually-hidden">Открыть/закрыть меню</span>
</button>
<a href="/" class="logo">
<img class="logo__img" src="">
</a>
<a href="" class="search-btn">
<span class="visually-hidden">Открыть поиск по странице</span>
</a>
<nav class="header__nav menu menu--opened">
<ul class="header__nav-list">
<li class="menu__item"><a href="" class="menu__link">link</a></li>
<li class="menu__item"><a href="" class="menu__link">link</a></li>
<li class="menu__item"><a href="" class="menu__link">link</a></li>
<li class="menu__item"><a href="" class="menu__link">link</a></li>
</ul>
</nav>
</header>
<div class="menu-mobile__modal">
<div class="menu-mobile__header">
<div class="menu-mobile__header-title">Меню</div>
<button class="menu-toggle menu-toggle--close menu-mobile__header-close"><svg class="icon-close"></svg></button>
</div>
<nav class="menu-mobile__content">
<ul class="menu-mobile__list">
<li class="menu-mobile__item">
<a class="menu-mobile__link" href="#">link</a>
</li>
<li class="menu-mobile__item">
<a class="menu-mobile__link" href="#">link</a>
</li>
</ul>
</nav>
</div>
Заголовок меню я бы делала псевдоэлементом. Почему именно так, написано выше.
<nav class="header__nav menu menu--opened">
<ul class="header__nav-list">
<li class="menu__item"><a href="" class="menu__link">link</a></li>
<li class="menu__item"><a href="" class="menu__link">link</a></li>
<li class="menu__item"><a href="" class="menu__link">link</a></li>
<li class="menu__item"><a href="" class="menu__link">link</a></li>
</ul>
</nav>
Т.е. внутри nav нужно расположить название меню и иконку закрытия (иконка svg) или лучше выше?
проблема в том, что у меня иконка close в виде svg, а иконке меню я просто линии с помощью стилей задал, т.е. это наверно будет сложно реализовать через одну кнопку
Дальше вы можете делать с этим что хотите, даже оставить свой первоначальный код.
<div class="menu-mobile">
<button class="menu-toggle menu-toggle--open">
<span class="icon-open">0</span>
</button >
<div class="menu-mobile__container">
<div class="menu-mobile__header">
<div class="menu-mobile__title">Меню</div>
<button class="menu-toggle menu-toggle--close"><svg class="icon-close"></svg></button>
</div>
<nav class="menu-mobile__nav">
<ul class="menu-mobile__nav-list">
<li class="menu-mobile__item"><a href="" class="menu-mobile__link">link</a></li>
<li class="menu-mobile__item"><a href="" class="menu-mobile__link">link</a></li>
<li class="menu-mobile__item"><a href="" class="menu-mobile__link">link</a></li>
<li class="menu-mobile__item"><a href="" class="menu-mobile__link">link</a></li>
</ul>
</nav>
</div>
</div>
да дело в том, что у крестика концы немного закруглённые
<div class="menu-mobile">
Откуда же вы берете mobile-то всё время.
У вас что, разные меню для десктопа и мобилки?
<div class="navbar">
<div class="navbar-top"></div>
<div class="navbar-center"></div>
<div class="navbar-bottom"></div>
</div>
<div class="menu-mobile">
находится в блоке <div class="navbar-center"></div>
<div class="menu-mobile">
, а вы считаете что декстопное меню должно отличаться от мобильного меню ?<div class="navbar">
<div class="navbar-top"></div>
<div class="navbar-center">
<a href="#" class="navbar-center__logo logo">Лого</a>
<div class="menu-mobile">
</div>
<div class="navbar-center__search search">
</div>
<div class="navbar-bottom"></div>
</div>
гриды на ie не работают
а вы считаете что декстопное меню должно отличаться от мобильного меню ?
<div class="navbar">
<div class="navbar-top">
<div class="menu-top"></div>
</div>
<div class="navbar-center">
<div class="menu-center">
тут в мобильной версии menu-top и menu-bottom
</div>
<a href="#" class="navbar-center__logo logo">Лого</a>
<div class="navbar-center__search search">
</div>
<div class="navbar-bottom">
<div class="menu-bottom"></div>
</div>
</div>
<header class="header">
<a class="header__city-choise city-choise" href="">Москва</a>
<button class="menu-toggle menu-toggle--open">
<span class="visually-hidden">Открыть/закрыть меню</span>
</button>
<a href="/" class="logo">
<img class="logo__img" src="http://img.ava.ua/img/products/343/343930/2551422.jpg">
</a>
<div class="header__search-panel search">
<form action="search__form"></form>
<a href="" class="search-btn">
<span class="visually-hidden">Открыть поиск по странице</span>
</a>
</div>
<div class="header__user-nav user-nav">
❤⛹
</div>
<nav class="header__nav menu menu--opened">
<ul class="menu__list menu__list--main">
<li class="menu__item"><a href="" class="menu__link">link</a></li>
<li class="menu__item"><a href="" class="menu__link">link</a></li>
<li class="menu__item"><a href="" class="menu__link">link</a></li>
<li class="menu__item"><a href="" class="menu__link">link</a></li>
</ul>
<ul class="menu__list menu__list--catalog">
<li class="menu__item"><a href="" class="menu__link">link</a></li>
<li class="menu__item"><a href="" class="menu__link">link</a></li>
<li class="menu__item"><a href="" class="menu__link">link</a></li>
<li class="menu__item"><a href="" class="menu__link">link</a></li>
</ul>
</nav>
</header>
спасибо за наводку, а почему именно не navbar ?)
Вы сильно все упростили
а разве menu-top и menu-bottom на декстопе можно объединить в один nav ?
Представьте, что вы ничего не знаете про стили. И будете читать разметку. Что вы поймете? Что есть навигация из двух списков, в одном меню каталога и в другом стандартная менюшка сайта/инетмагаза.
Отлично, всё понятно.
я к тому, что slick slider вроде на флексы плохо реагирует
<nav class="header__nav menu menu--opened">
<ul class="menu__list menu__list--main">
<li class="menu__item"><a href="" class="menu__link">link</a></li>
<li class="menu__item"><a href="" class="menu__link">link</a></li>
<li class="menu__item"><a href="" class="menu__link">link</a></li>
<li class="menu__item"><a href="" class="menu__link">link</a></li>
</ul>
<ul class="menu__list menu__list--catalog">
<li class="menu__item"><a href="" class="menu__link">link</a></li>
<li class="menu__item"><a href="" class="menu__link">link</a></li>
<li class="menu__item"><a href="" class="menu__link">link</a></li>
<li class="menu__item"><a href="" class="menu__link">link</a></li>
</ul>
</nav>
А когда используют название у класса menu-mobile ?
<div class="navbar">
<div class="navbar-top">
<div class="menu-top"></div>
</div>
<div class="navbar-center">
<div class="menu-mobile">
тут в мобильной версии menu-top и menu-bottom
</div>
<a href="#" class="navbar-center__logo logo">Лого</a>
<div class="navbar-center__search search">
</div>
<div class="navbar-bottom">
<div class="menu-bottom"></div>
</div>
</div>
<div class="navbar">
<div class="navbar-top">
<div class="menu-top"></div>
</div>
<div class="navbar-center">
<div class="menu-mobile">
<button class="menu-toggle menu-toggle--open">
<span class="icon-open">0</span>
</button>
<div class="menu-mobile__container">
<div class="menu-mobile__header">
<div class="menu-mobile__title">Меню</div>
<button class="menu-toggle menu-toggle--close"><svg class="icon-close"></svg></button>
</div>
<nav class="menu-mobile__nav">
<ul class="menu-mobile__nav-list">
<li class="menu-mobile__item"><a href="" class="menu-mobile__link">link</a></li>
<li class="menu-mobile__item"><a href="" class="menu-mobile__link">link</a></li>
<li class="menu-mobile__item"><a href="" class="menu-mobile__link">link</a></li>
<li class="menu-mobile__item"><a href="" class="menu-mobile__link">link</a></li>
</ul>
</nav>
</div>
</div>
<a href="#" class="navbar-center__logo logo">Лого</a>
<div class="navbar-center__search search">
</div>
<div class="navbar-bottom">
<div class="menu-bottom"></div>
</div>
</div>
</div>
<button class="menu-mobile__icon menu-mobile__icon--open">
<span class="menu-mobile__icon-line">0</span>
</button>
<button class="menu-mobile__icon menu-mobile__header-close menu-mobile__icon--close">
<svg class="icon-close icon-close--menu-mobile" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M9.76221 8.00009L15.7444 2.01765C15.9089 1.85297 15.9997 1.63326 16 1.39898C16 1.16458 15.9092 0.94461 15.7444 0.780188L15.2202 0.25609C15.0553 0.0910169 14.8356 0.000610352 14.6011 0.000610352C14.367 0.000610352 14.1473 0.0910169 13.9824 0.25609L8.00026 6.23814L2.01782 0.25609C1.85327 0.0910169 1.63343 0.000610352 1.39902 0.000610352C1.16488 0.000610352 0.945041 0.0910169 0.780488 0.25609L0.256 0.780188C-0.0853333 1.12152 -0.0853333 1.67671 0.256 2.01765L6.23831 8.00009L0.256 13.9823C0.0913171 14.1472 0.000650406 14.3669 0.000650406 14.6012C0.000650406 14.8355 0.0913171 15.0552 0.256 15.22L0.780358 15.7441C0.944911 15.909 1.16488 15.9996 1.39889 15.9996C1.6333 15.9996 1.85314 15.909 2.01769 15.7441L8.00013 9.76191L13.9823 15.7441C14.1471 15.909 14.3668 15.9996 14.601 15.9996H14.6012C14.8355 15.9996 15.0552 15.909 15.22 15.7441L15.7443 15.22C15.9088 15.0553 15.9996 14.8355 15.9996 14.6012C15.9996 14.3669 15.9088 14.1472 15.7443 13.9824L9.76221 8.00009Z"/></svg>
</button>
<span class="menu-mobile__icon-line">0</span>
?<button>
<span>0</span>
<span>0</span>
<span>0</span>
</button>
<span class="menu-mobile__icon-line">0</span>
? <button class="menu-mobile__icon menu-mobile__icon--open">
<span class="menu-mobile__icon-line">Menu</span>
</button>
и добавил анимацию открытия/закрытияно про font-size: 0 я так ничего и не нашел
Но все таки мне пришлось с помощью js сделать клонирование меню в мобильной версии сайта, т.к. акции из каталога перенести стандартными способами не получится
row-space--between
хрень, кажись, если я правильно понял, должно быть так row--space-between
menu-mobile__block menu-mobile-block
и следующую вложенность описал отдельный блоком с элементами. __icon звучит еще понятно, __modal уже заставляет меня задать вопрос, что же ты натворил, а __block загоняет в уныние. Ты имел в виду __content?
я вам советую обратить внимание на семантическую часть
<nav class="navbar-center">
<div class="menu-mobile">
<button type="button" class="menu-mobile__open">
<i class="icons__open_menu"></span>
</button >
<div class="menu-mobile__container">
<div class="menu-mobile__header">
<h2="menu-mobile__title">Меню</h2>
<button type="button" class="menu-mobile__close">
<i class="icons__close_menu"></span>
</button>
</div>
<ul class="menu-mobile__links">
<li class="menu-mobile__item">
<a class="link" href="#">link</span>
</li>
<li class="menu-mobile__item">
<a class="link" href="#">link</span>
</li>
</ul>
</div>
</div>
</nav>
</div></div></div>....</div>
(мне еще зачастую и интегрировать в шаблоны приходится)<button type="button" class="menu-mobile__open">
<span class="menu-mobile__open-line">0</span>
</button >
<span class="menu-mobile__open_line">0</span>
<button type="button" class="menu-mobile__open">
<span class="menu-mobile__line">0</span>
</button>