RUS | ANG | |

StepkinBlog.ru

Пока я творю, я живу!
Блог посвящен: HTML, CSS, PHP, Wordpress, Bootstrap

Главная » Основы Bootstrap 3 » Горизонтальное меню. Основы bootstrap 3 для начинающих. Урок №10

05.08.2016


01:13


13314


12


Горизнтальное меню. Основы bootstrap 3 для начинающих. Урок №10

Горизонтальное меню. Основы bootstrap 3 для начинающих. Урок №10

Всем привет!
Продолжаем изучать основы «bootstrap3».
В сегодняшнем уроке вы научитесь создавать горизонтальное меню для веб-страницы.
В предыдущих уроках вы научились создавать списки и выпадающие списки. По сути, списки можно использовать как меню, но в bootstrap есть специальные классы для создания меню.
Благодаря этим классам можно быстро, красиво, а главное, адаптивно создать меню для сайта и вы в этом сейчас сами убедитесь.

Вот так выглядит меню на компьютерах:

Горизнтальное меню. Основы bootstrap 3 для начинающих. Урок №10

…а вот так на мобильных устройствах. Все элементы меню прячутся и остается только кнопка. При нажатии на кнопку появляется меню выпадающим списком:

Горизнтальное меню. Основы bootstrap 3 для начинающих. Урок №10

При нажатии справа на кнопку меню, откроется выпадающий список:

Горизнтальное меню. Основы bootstrap 3 для начинающих. Урок №10

Теперь сам код, а потом разберем классы, которые можно менять.

<nav class="navbar navbar-default" role="navigation">
<div class="container-fluid">
<!-- Название компании и кнопка, которая отображается для мобильных устройств группируются для лучшего отображения при сужении -->
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span><!--Полоски на кнопке-->
<span class="icon-bar"></span><!--Полоски на кнопке-->
<span class="icon-bar"></span><!--Полоски на кнопке-->
</button>
<a class="navbar-brand" href="#">Brand</a>
</div>

<!-- Группируем ссылки, формы, выпадающее меню и прочие элементы -->
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav">
<li class="active"><a href="#">Link 1</a></li>
<li><a href="#">Link 2</a></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown 1<b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="#">Action</a></li>
<li><a href="#">Another action</a></li>
<li><a href="#">Something else here</a></li>
<li class="divider"></li>
<li><a href="#">Separated link</a></li>
<li class="divider"></li>
<li><a href="#">One more separated link</a></li>
</ul>
</li>
</ul>
<form class="navbar-form navbar-left" role="search">
<div class="form-group">
<input type="text" class="form-control" placeholder="Search">
</div>
<button type="submit" class="btn btn-default">Submit</button>
</form>
<ul class="nav navbar-nav navbar-right">
<li><a href="#">Link 3</a></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown 2<b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="#">Action</a></li>
<li><a href="#">Another action</a></li>
<li><a href="#">Something else here</a></li>
<li class="divider"></li>
<li><a href="#">Separated link</a></li>
</ul>
</li>
</ul>
</div><!-- /.navbar-collapse -->
</div><!-- /.container-fluid -->
</nav>

Сейчас меню резиновое, так как используется класс «container-fluid» (строка №2):

<div class="container-fluid">

Если вместо класса «container-fluid» прописать класс «container», тогда меню не будет растягиваться на всю ширину экрана, а примет ширину класса «container». О классе «container» можно почитать тут.

А вот эта часть кода отвечает за название организации (строка №11). Сюда можно смело вставлять название сайта, логотип. Также в этой части кода есть кнопка, которая появляется на мобильных устройствах (строки №5 - №10):

<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span><!--Полоски на кнопке-->
<span class="icon-bar"></span><!--Полоски на кнопке-->
<span class="icon-bar"></span><!--Полоски на кнопке-->
</button>
<a class="navbar-brand" href="#">Brand</a>
</div>

Дальше идет список меню.

<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav">
<li class="active"><a href="#">Link 1</a></li>
<li><a href="#">Link 2</a></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown 1<b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="#">Action</a></li>
<li><a href="#">Another action</a></li>
<li><a href="#">Something else here</a></li>
<li class="divider"></li>
<li><a href="#">Separated link</a></li>
<li class="divider"></li>
<li><a href="#">One more separated link</a></li>
</ul>
</li>
</ul>
<form class="navbar-form navbar-left" role="search">
<div class="form-group">
<input type="text" class="form-control" placeholder="Search">
</div>
<button type="submit" class="btn btn-default">Submit</button>
</form>
<ul class="nav navbar-nav navbar-right">
<li><a href="#">Link 3</a></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown 2<b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="#">Action</a></li>
<li><a href="#">Another action</a></li>
<li><a href="#">Something else here</a></li>
<li class="divider"></li>
<li><a href="#">Separated link</a></li>
</ul>
</li>
</ul>
</div><!-- /.navbar-collapse -->

Хочу обратить ваше внимание на строку №5:

<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">

и строку №15:

<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">

Если id этих двух строк будет совпадать, то кнопка выпадающего меню будет работать в мобильных версиях. На  примере это «bs-example-navbar-collapse-1».

Теперь само меню с ссылками:

<ul class="nav navbar-nav">
<li class="active"><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown <b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="#">Action</a></li>
<li><a href="#">Another action</a></li>
<li><a href="#">Something else here</a></li>
<li class="divider"></li>
<li><a href="#">Separated link</a></li>
<li class="divider"></li>
<li><a href="#">One more separated link</a></li>
</ul>
</li>
</ul>

Я думаю, что такое ссылка и как она создается – объяснять не нужно. Но, если кто не знает, вам сюда.

Строка № 17 – для выделения активного меню, используется класс «active»:

<li class="active"><a href="#">Link</a></li>

Строка №21 – чтобы список выпадал в мобильной версии, во вложенный список ul нужно добавить класс «dropdown-menu»:

<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown <b class="caret"></b></a><!--Каретка-->
<ul class="dropdown-menu"><!--Вложенный список, который будет выпадать-->
<li><a href="#">Action</a></li>
<li><a href="#">Another action</a></li>
<li><a href="#">Something else here</a></li>
<li class="divider"></li><!--Разделительная линия-->
<li><a href="#">Separated link</a></li>
<li class="divider"></li>
<li><a href="#">One more separated link</a></li>
</ul>
</li>

Для того чтобы зафиксировать меню сверху, нужно добавить класс «navbar-fixed-top» (Строка №1):

<nav class="navbar navbar-default navbar-fixed-top" role="navigation">

Для того чтобы зафиксировать меню снизу, нужно добавить класс «navbar-fixed-bottom» (Строка №1):

<nav class="navbar navbar-default  navbar-fixed-bottom" role="navigation">

Фух :smokes:, вроде все!

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

А теперь готовое решение для меню на Bootstrap3:

Фиксированные навигационные меню

Меню постоянно будет находиться в верхней либо в нижней части экрана. При прокрутке страницы меню будет всегда на виду и занимать исходное положение.
Нужно добавить дополнительный класс «navbar-fixed-top» для прикрепления меню сверху или «navbar-fixed-bottom» для прикрепления меню снизу к основным классам меню «navbar» и «navbar-default».

Навигационное меню, прикрепленное к верхней части страницы

Класс «navbar-fixed-top»

<nav role="navigation" class="navbar navbar-default navbar-fixed-top">
<div class="container-fluid">
<!-- Brand and toggle get grouped for better mobile display -->
<div class="navbar-header">
<button type="button" data-target="#navbarCollapse" data-toggle="collapse" class="navbar-toggle">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a href="#" class="navbar-brand">Бренд</a>
</div>
<!-- Collection of nav links and other content for toggling -->
<div id="navbarCollapse" class="collapse navbar-collapse">
<ul class="nav navbar-nav">
<li class="active"><a href="#">Главная</a></li>
<li><a href="#">Статьи</a></li>
<li><a href="#">Новости</a></li>
</ul>
<ul class="nav navbar-nav navbar-right">
<li><a href="#">Войти</a></li>
</ul>
</div>
</div>
</nav>

Навигационное меню, прикрепленное к нижней части страницы

Класс «navbar-fixed-bottom»

<nav role="navigation" class="navbar navbar-default navbar-fixed-bottom">
<div class="container-fluid">
<!-- Brand and toggle get grouped for better mobile display -->
<div class="navbar-header">
<button type="button" data-target="#navbarCollapse" data-toggle="collapse" class="navbar-toggle">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a href="#" class="navbar-brand">Бренд</a>
</div>
<!-- Collection of nav links and other content for toggling -->
<div id="navbarCollapse" class="collapse navbar-collapse">
<ul class="nav navbar-nav">
<li class="active"><a href="#">Главная</a></li>
<li><a href="#">Статьи</a></li>
<li><a href="#">Новости</a></li>
</ul>
<ul class="nav navbar-nav navbar-right">
<li><a href="#">Войти</a></li>
</ul>
</div>
</div>
</nav>

Нефиксированное меню

Обычное меню

<nav role="navigation" class="navbar navbar-default">
<!-- Brand and toggle get grouped for better mobile display -->
<div class="navbar-header">
<button type="button" data-target="#navbarCollapse" data-toggle="collapse" class="navbar-toggle">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a href="#" class="navbar-brand">Бренд</a>
</div>
<!-- Collection of nav links, forms, and other content for toggling -->
<div id="navbarCollapse" class="collapse navbar-collapse">
<ul class="nav navbar-nav">
<li class="active"><a href="#">Главная</a></li>
<li><a href="#">Статьи</a></li>
<li><a href="#">Новости</a></li>
</ul>
<ul class="nav navbar-nav navbar-right">
<li><a href="#">Войти</a></li>
</ul>
</div>
</nav>

Статическое меню

<nav role="navigation" class="navbar navbar-default navbar-static-top">
<!-- Brand and toggle get grouped for better mobile display -->
<div class="navbar-header">
<button type="button" data-target="#navbarCollapse" data-toggle="collapse" class="navbar-toggle">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a href="#" class="navbar-brand">Бренд</a>
</div>
<!-- Collection of nav links and other content for toggling -->
<div id="navbarCollapse" class="collapse navbar-collapse">
<ul class="nav navbar-nav">
<li class="active"><a href="#">Главная</a></li>
<li><a href="#">Статьи</a></li>
<li><a href="#">Новости</a></li>
</ul>
<ul class="nav navbar-nav navbar-right">
<li><a href="#">Войти</a></li>
</ul>
</div>
</nav>

Как поменять цвет меню?

В строку №1 к классу «navbar» добавьте дополнительно любой придуманный класс, например «red»:

<nav role="navigation" class="navbar navbar-default navbar-static-top red">

Теперь между тегами <head></head> добавьте код CSS:

<style>
.red { background: #cc0000;}
li.active a { background-color: #5a0202 !important;}
ul.nav.navbar-nav a {color: #fff !important;}
</style>

Кто не знает CSS, вам сюда.

Это все! В следующем уроке мы продолжим изучать основы Bootstrap 3.



Случайные записи:

  1. Учимся создавать пагинацию, хлебные крошки и метки (теги). Основы bootstrap 3 для начинающих. Урок №12
  2. Вертикальное меню (панель). Основы bootstrap 3 для начинающих. Урок №11
  3. Вкладки. Основы bootstrap 3 для начинающих. Урок №21
  4. Основы CMS WordPress. Урок №1
  5. Работа с файлами-1 (создание, открытие, отображение, запись и закрытие файлов). Основы PHP с нуля. Урок №19

Последние записи рубрики:

  1. Бесплатный курс по основам Bootstrap3
  2. Создание простого сайта на Bootstrap 3. Практика по пройденному материалу
  3. Тесты Bootstrap 3 онлайн. Основы Bootstrap 3 для начинающих
  4. Создание галереи изображений. Основы bootstrap3 для начинающих. Урок №26
  5. Миниатюры. Основы bootstrap 3 для начинающих. Урок №25

12 ответа(ов) на статью: “Горизонтальное меню. Основы bootstrap 3 для начинающих. Урок №10”

  1. Олег says:

    Степан, это лучшие вводные уроки по бутстрапу..
    Спасибо большое за этот труд!

    Ответить

    Степка ответил(а) на комментарий:

    Пожалуйста, Олег!
    И Вам спасибо за комментарий!

    Ответить

  2. Vasa says:

    Как меню вывести через переменную или как то иначе, что бы не писать все в индекс файл? Спасибо!

    Ответить

    Степка ответил(а) на комментарий:

    Через оператор php Include или Require
    Но для этого нужно почитать основы php или вот, смотрите.

    Ответить

  3. 0110 says:

    Нет никакого объяснения что это такое и как им свободно манипулировать. Что такое класс sr-only и для чего он нужен? Для чего класс collapse? А для чего navbar-collapse? Какие ещё есть варианты? Контент из ряда:" Ээээм...ну это так, а это так. Не знаю почему - но вот так. Вооооот, используйте пожалуйста. " Вы объясняете только шаблон, но кому он нужен? Расскажите как работает каждая деталь, чтобы было возможно выстраивать из них какие-то конструкции. 1/10, крайне недоволен что убил время на этот сайт.

    Ответить

    Степка ответил(а) на комментарий:

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

    Ответить

  4. Руслан says:

    Спасибо, отличные уроки!

    Ответить

  5. Алексей says:

    Степан, за блог - спасибо. Но есть вопросы при использовании кода из раздела
    "Навигационное меню, прикрепленное к верхней части страницы":
    1. Активная кнопка из 16 строки навсегда поменяла свой цвет, выделение идет только шрифта, которое, кстати, игнорирует стили для ссылок прописанные в файле .css;
    2. Получившееся меню самостоятельно не сворачивается после выбора одного из пунктов;
    3. Свернутое в кнопку меню перестает работать через несколько минут - реанимируется только открытием сайта в новой вкладке браузера.

    Буду признателен, если поможете разобраться. :sad:

    Ответить

    Степка ответил(а) на комментарий:

    мне нужно посмотреть на Ваш код

    Ответить

  6. Паша says:

    Степан, добрый день!
    Вы допустили ошибку в заголовке этой статьи:
    у вас написано "Горизнтальное", пропущена буква "о" :arrow:

    Ответить

    Степка ответил(а) на комментарий:

    Спасибо, Паша!

    Ответить

  7. МэриЭнн says:

    Добрый день, урок очень хороший, ваш код подошел к новой теме, которую я пыталась создать. Но мне сейчас надо поправить меню в теме bootstrap-basic4 (сделать кликабельным родительский пункт меню, второй уровень выпадает и рабоет как надо).
    Попробовала подставить ваш код, но с ним у меня формируется еще одно меню над существующим.
    Сейчас код вот такой (header.php)

    <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#bootstrap-basic4-topnavbar" aria-controls="bootstrap-basic4-topnavbar" aria-expanded="false" aria-label="">
    
    '2',
    'theme_location' => 'primary',
    'container' => false,
    'menu_id' => 'bb4-primary-menu',
    'menu_class' => 'navbar-nav mr-auto',
    'walker' => new \BootstrapBasic4\BootstrapBasic4WalkerNavMenu()
    )
    );
    ?>
    

    Ответить

Добавить комментарий

;-) :| :x :twisted: :smokes: :smile: :shock: :sad: :rose: :roll: :razz: :pop-corne: :oops: :o :mrgreen: :lol: :idea: :grin: :gazeta: :evil: :cry: :cool: :coffe: :arrow: :???: :?: :!:

Подписаться на обновления:

Подпишись на обновления моего блога через e-m@il:

@

Реклама на блоге:

Мои цели на
2019 год:

Довести количество статей до 150

Доделать этот блог

Закончить тему «Основы CSS»

Закончить тему «Основы PHP»

Начать тему «Основы JavaScript»

Добиться посещаемости 500 чел/сутки

Статистика:

Записей: 111
Страниц: 3
Рубрик: 9
Меток: 11
Комментариев: 347