Горизонтальное меню css: Горизонтальное меню для сайта

Содержание

Создание меню с помощью CSS и HTML

Если ваш веб-сайт не ограничивается одной веб-страницей, то стоит подумать о добавлении панели навигации (меню). Меню - раздел веб-сайта, предназначенный помогать посетителю перемещаться по сайту. Любое меню представляет собой список ссылок, ведущих на внутренние страницы сайта. Самым простым способом добавить панель навигации на сайт является создание меню с помощью CSS и HTML.

Вертикальное меню

Первым шагом создания вертикального меню будет создание маркированного списка. Также нам нужно будет иметь возможность идентифицировать список, поэтому мы добавим к нему атрибут id с идентификатором "navbar". Каждый элемент <li> нашего списка будет содержать по одной ссылке:


<ul>
  <li><a href="#">Главная</a></li>
  <li><a href="#">Новости</a></li>
  <li><a href="#">Контакты</a></li>
  <li><a href="#">О нас</a></li>
</ul>

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


#navbar {
  margin: 0;
  padding: 0;
  list-style-type: none;
  width: 100px;
}

Теперь пришло время стилизовать сами ссылки. Мы добавим к ним фоновый цвет, изменим параметры текста: цвет, размер и насыщенность шрифта, уберем подчеркивание, добавим небольшие отступы и переопределим отображение элемента <a> со строчного на блочный. Дополнительно были добавлены левая и нижняя рамки к пунктам списка.

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


#navbar a {
  background-color: #949494;
  color: #fff;
  padding: 5px;
  text-decoration: none;
  font-weight: bold;
  border-left: 5px solid #33ADFF;
  display: block;
}
#navbar li {
  border-left: 10px solid #666;
  border-bottom: 1px solid #666;
}

Мы объединили весь код, описанный выше, в один пример, теперь, нажав на кнопку попробовать, вы можете перейти на страницу с примером и увидеть результат:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Название документа</title>
    <style>
      #navbar {
        margin: 0;
        padding: 0;
        list-style-type: none;
        width: 100px;
      }
      #navbar li {
        border-left: 10px solid #666;
        border-bottom: 1px solid #666;
      }
	  #navbar a {
        background-color: #949494;
        color: #fff;
        padding: 5px;
        text-decoration: none;
		font-weight: bold;
        border-left: 5px solid #33ADFF;
		display: block;
      }
    </style>
  </head>

  <body>
  
    <ul>
      <li><a href="#">Главная</a></li>
      <li><a href="#">Новости</a></li>
      <li><a href="#">Контакты</a></li>
      <li><a href="#">О нас</a></li>
    </ul>

  </body>
</html>
Попробовать »

При наведении курсора мыши на пункт меню его внешний вид может изменяться, привлекая к себе внимание пользователя. Создать такой эффект можно с помощью псевдо-класса :hover.

Вернемся к рассмотренному ранее примеру вертикального меню и добавим в таблицу стилей следующее правило:


#navbar a:hover {
  background-color: #666;
  border-left: 5px solid #3333FF;
}
Попробовать »

Горизонтальное меню

В предыдущем примере мы рассмотрели вертикальную панель навигации, которую чаще всего можно встретить на сайтах слева или справа от области с основным контентом. Однако меню с навигационными ссылками также часто располагается и по горизонтали в верхней части веб-страницы.

Горизонтальное меню можно создать путем стилизации обычного списка. Свойству display для элементов <li> нужно присвоить значение inline, чтобы пункты списка располагались друг за другом.

Для размещения пунктов меню по горизонтали, сначала создадим маркированный список с ссылками:


<ul>
  <li><a href="#">Главная</a></li>
  <li><a href="#">Новости</a></li>
  <li><a href="#">Контакты</a></li>
  <li><a href="#">О нас</a></li>
</ul>

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


#navbar {
  margin: 0;
  padding: 0;
  list-style-type: none;
}
#navbar li { display: inline; }
Попробовать »

Теперь нам осталось лишь определить стилевое оформление для нашего горизонтального меню:


#navbar {
  margin: 0;
  padding: 0;
  list-style-type: none;
  border: 2px solid #0066FF;
  border-radius: 20px 5px;
  width: 550px;
  text-align: center;
  background-color: #33ADFF;
}
#navbar a {
  color: #fff;
  padding: 5px 10px;
  text-decoration: none;
  font-weight: bold;
  display: inline-block;
  width: 100px;
}
#navbar a:hover {
  border-radius: 20px 5px;
  background-color: #0066FF;
}
Попробовать »

Выпадающее меню

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

Сначала нам нужно создать HTML-структуру нашего меню. Основные навигационные ссылки мы поместим в маркированный список:


<ul>
  <li><a href="#">Главная</a></li>
  <li><a href="#">Новости</a></li>
  <li><a href="#">Контакты</a></li>
  <li><a href="#">О нас</a></li>
</ul>

Подпункты мы разместим в отдельном списке, вложив его в элемент <li>, который содержит родительскую ссылку относительно подпунктов. Теперь мы имеем четкую структуру нашей будущей панели навигации:


<ul>
  <li><a href="#">Главная</a></li>
  <li><a href="#">Новости</a></li>
  <li><a href="#">Контакты</a>
    <ul>
      <li><a href="#">Адрес</a></li>
      <li><a href="#">Телефон</a></li>
      <li><a href="#">Email</a></li>
    </ul>
  </li>
  <li><a href="#">О нас</a></li>
</ul>
Попробовать »

Теперь приступим к написанию CSS кода. Для начала необходимо скрыть список с подпунктами с помощью объявления display: none;, чтобы они не отображались на веб-странице все время. Для отображения подпунктов нам нужно чтобы при наведении на элемент <li> список снова был преобразован в блочный элемент:


#navbar ul { display: none; }
#navbar li:hover ul { display: block; }

Убираем у обоих списков отступы и маркеры, установленные по умолчанию. Элементы списка с навигационными ссылками делаем плавающими, формируя горизонтальное меню, но для элементов списка, содержащих подпункты задаем float: none;, чтобы они отображались друг под другом.


#navbar, #navbar ul {
  margin: 0;
  padding: 0;
  list-style-type: none;
}
#navbar li { float: left; }
#navbar ul li { float: none; }

Затем нам нужно сделать так, чтобы наше выпадающее подменю не смещало контент, расположенный под панелью навигации, вниз. Для этого мы зададим пунктам списка position: relative;, а списку, содержащему подпункты position: absolute; и добавим свойство top со значением 100%, чтобы абсолютно позиционированное подменю отображалось точно под ссылкой.

#navbar ul {
  display: none;
  position: absolute;
  top: 100%;
}
#navbar li {
  float: left;
  position: relative;
}
#navbar { height: 30px; }
Попробовать »

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

Теперь нам осталось стилизовать оба наших списка и выпадающее меню будет готово:


#navbar ul {
  display: none;
  background-color: #f90;
  position: absolute;
  top: 100%;
}
#navbar li:hover ul { display: block; }
#navbar, #navbar ul {
  margin: 0;
  padding: 0;
  list-style-type: none;
}
#navbar {
  height: 30px;
  background-color: #666;
  padding-left: 25px;
  min-width: 470px;
}
#navbar li {
  float: left;
  position: relative;
  height: 100%;
}
#navbar li a {
  display: block;
  padding: 6px;
  width: 100px;
  color: #fff;
  text-decoration: none;
  text-align: center;
}
#navbar ul li { float: none; }
#navbar li:hover { background-color: #f90; }
#navbar ul li:hover { background-color: #666; }
Попробовать »

Простое горизонтальное меню на CSS

.main-menu {

    list-style: none;

    margin: 0;

    padding: 0;

    margin-top: 30px;

    font-family: 'Montserrat', sans-serif;    

    /* Для выравнивания меню по центру

    display: flex;

    flex-wrap: wrap;

    justify-content: center;

    */

}

.main-menu > li {

    display: inline-flex;

}

.main-menu > li + li {

    margin-left: 20px;

}

.main-menu > li > a {

    padding: 0 0 20px 0;

    position: relative;

    text-transform: uppercase;    

    color: #000;

    font-weight: bold;

    letter-spacing: 0.2px;

    font-size: 15px;

    text-decoration: none;    

}

.main-menu > li > a:hover {

    text-decoration: none;    

    color: #337AB7;

}

.main-menu > li > a:after {

    width: 0;

    height: 3px;

    background-color: #337AB7;

    content: '';

    left: 0;

    bottom: 10px;

    position: absolute;

    transition: all .3s;

}

.main-menu > li > a:hover::after {

    width: 100%;

}

.main-menu > li.active a:after {

    width: 100%;

}

.main-menu li {

    margin: 0;

    white-space: nowrap;

}

.main-menu li.menu-children {

    position: relative;

    margin-right: 12px;

}

.main-menu li.menu-children:after {

    position: absolute;

    content: "\2039";

    color: #337AB7;

    font-size: 20px;

    font-weight: bold;

    right: -12px;

    top: -2px;

    transform: rotate(-90deg);

}

.main-menu li li.menu-children:after {

    position: absolute;

    content: "\2039";

    color: #FFF;

    font-size: 20px;

    font-weight: bold;

    right: 10px;

    top: 12px;

    transform: rotate(180deg);

}

.main-menu li.menu-children:hover > ul {

    opacity: 1;

    visibility: visible;

    transform: translateY(0);

}

.main-menu ul {

    padding: 10px 0;

    margin: 0;

    list-style: none;

    background-color: #337AB7;

    position: absolute;

    z-index: 20;

    min-width: 220px;

    top: 100%;

    left: -30px;

    opacity: 0;

    visibility: hidden;

    transform: translateY(5px);

    transition: all 200ms cubic-bezier(0.43, 0.59, 0.16, 1.25);

}

.main-menu ul li {

    display: block;

    padding: 0 10px;

    line-height: 1.1;

}

.main-menu ul li:last-child {

    margin-bottom: 0;

}

.main-menu ul li a {

    display: block;

    color: #fff;

    padding: 10px;

    transition: all .3s;

    text-decoration: none;    

}

.main-menu ul li a:hover {

    color: #337AB7;

    background: #FFF;

    text-decoration: none;    

}

.main-menu ul ul {

    top: 0;

    left: 100%;

}    

горизонтальное » Скрипты для сайтов

7 068 Скрипты / Menu & Nav

Эффект зачеркивания при наведении в меню

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

4 946 Скрипты / Menu & Nav

Гибкое горизонтальное меню

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

5 271 Скрипты / Menu & Nav

Диагональное меню на CSS

Используя возможности CSS3 в этом уроке сделаем диагональное меню, и напишем media queries, чтобы придать ему адаптивности.

2 546 Скрипты / Menu & Nav

Горизонтальное меню на CSS3

Симпатичное горизонтальное CSS3 меню с всплывающими пунктами при наведении.

4 810 Скрипты / Menu & Nav

Выпадающее меню на CSS3

Горизонтальное меню с выпадющими подпунктами с использованием css3.

2 792 Скрипты / Menu & Nav

Размытое меню на CSS3

Простое горизонтальное меню с эффектом размытия и с элементом адаптивности. Используется CSS3 и HTML5.

2 652 Скрипты / Menu & Nav

HorizontalNav - горизонтальная навигация

JQuery плагин, позволяющий сделать горизонтальную навигацию, которая будет занимать всю ширину контейнера в котором находится. Добавлена также и поддержка IE7.

3 816 Скрипты / Menu & Nav

Горизонтальное меню с выпадающими подпунктами

Горизонтальное меню с выпадающими подпунктами. Выпадающие элементы используют jQuery, все остальное оформлено на CSS. В демо включен практически макет сайта, осталось только заполнить центральную часть контентом и нарисовать красивую шапку. Но можно использовать и только саму идею меню.

1 893 Скрипты / Menu & Nav

Меню с эффектом подпрыгивания

Интересное подпрыгивающее меню (bounce), сделанное с помощью псевдо элементов и пользовательских атрибутов на CSS3. В примере простое горизонтальное и горизонтальное с выпадающими под пунктами меню.

2 786 Скрипты / Menu & Nav

Многоуровневое выпадающее меню

Многоуровневое выпадающее меню на CSS2. При этом работает оно в IE5.5, IE6, IE7, IE8, Firefox, Opera, Safari(PC) и Google Chrome.

1 899 Скрипты / Menu & Nav

Многоцветное меню на CSS3

Горизонтальное выпадающее меню, фишка которого состоит в том, что выпадающие блоки могут изменять цвет на тот, по какому из цветных квадратиков вы щелкните мышкой. При этом смена цвета реализована на CSS, а не на jаvascript.

2 506 Скрипты / Menu & Nav

Выпадающее CSS3 меню

Выпадающее меню на CSS3 сделанное на базе UI созданного Владимиром Кудиновым.

Меню и навигация

3 301 Animation / Menu & Nav / Codepen

Эффект наведения следящий за курсором

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

6 848 Скрипты / Menu & Nav

Canvi — off-canvas панель навигации

Canvi навигационная панель (off-canvas) с несколькими параметрами для настройки. Можно использовать сразу несколько панелей на одной странице, устанавливать адаптивную ширину и использовать свои стили для панели.

7 068 Скрипты / Menu & Nav

Эффект зачеркивания при наведении в меню

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

15 594 Скрипты / Menu & Nav

Slinky — адаптивное многоуровневое меню

Легкий адаптивный плагин многоуровневого меню. Меню больше подходит для отображений на мобильных устройствах.

4 946 Скрипты / Menu & Nav

Гибкое горизонтальное меню

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

8 335 Скрипты / Menu & Nav

Slide out sidebar меню

  Плавно выдвигающееся меню боковой панели. Реализации данного меню уже несколько лет, однако мы решили вспомнить о нём и прикрутить иконки font-awesome, шрифт roboto и обновить modernizr.

6 371 Скрипты / Menu & Nav

Mega dropdown меню

Mega dropdown меню - jQuery плагин для реализации большого выпадающего меню с множеством подкатегорий для сайтов с большим количеством контента.

5 271 Скрипты / Menu & Nav

Диагональное меню на CSS

Используя возможности CSS3 в этом уроке сделаем диагональное меню, и напишем media queries, чтобы придать ему адаптивности.

3 573 Скрипты / Menu & Nav

Lavalamp меню на CSS3

Скользящий эффект для меню при наведении, который более известен, как lavalamp эффект. Эффект реализован только на CSS с помощью transitions и селектора ~.

4 087 Скрипты / Menu & Nav

Анимированный border с меню

Создание off-canvas (вне основной страницы) навигации с анимированным border эффектом.

13 758 Скрипты / Menu & Nav

Адаптивное много-уровневое меню

Сегодня сделаем адаптивное много-уровневое меню. Для мобильной версии добавим несколько строчек jаvascript кода. Для лучшего восприятия пунктов навигации, добавим для каждого иконки, воспользовавшись уже знакомым нам по предыдущим урокам - font-awesome.css

4 229 Скрипты / Menu & Nav

Responsive nav - плагин адаптивного меню

Плагин адаптивной навигации без зависимостей от каких-либо библиотек и с быстрой поддержкой touch устройств.

Создание меню на CSS – руководство для новичков

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

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

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

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

На объёмных сайтах, содержащих более 50 страниц, невозможно разместить полное меню для доступа ко всем разделам.

В таком случае следует использовать выпадающее меню на CSS, при клике на которое появляются дополнительные ссылки на подразделы.

Разновидности меню в CSS

Существует сразу несколько видов и типов CSS меню:

  1. Главное меню. Это список определённых ссылок на ключевые разделы веб-сайта.
  2. Дополнительное меню. Такое меню имеет иерархическую структуру и бывает трёх типов:
    • Выпадающее меню. Раскрывается при наведении курсора мыши на пункт;
    • Всплывающее меню сайта. Раскрывается при клике на определённом пункте;
    • Статическое дополнительное меню для CSS. Древовидная структура, представленная в уже раскрытом виде.

Как создать меню в CSS?

Приведём пример создания простого горизонтального и вертикального меню на CSS с пояснениями.

Код горизонтального меню прописывается следующим образом:

<head>
<title>Горизонтальное меню сайта</title>

<style type="text/css">
.navigation {
   list-style: none; /* Отключение отображения маркеров. */
}
.navigation li {
   float: left; /* Выстраивание элементов списка в один ряд. */
   margin-right: 1px; /* создание отступов для того, чтобы не сливались пункты меню. */
   font-family: Verdana, Arial, Helvetica, sans-serif; /* Указание типа шрифта. */
   font-size: 14px; /* Размер текста в ссылках. */
}
.navigation li a {
   display: block; /* Изменение отображения на блочное для того чтобы иметь возможность задать внутренние отступы. */
   padding: 15px 20px;  /* Внутри блочные отступы. */
   background: #0db5b5; /* Цвет блоков меню. */
   color: #3f3f3f; /* Цвет текста в блоках меню. */
   text-decoration: none; /* Устранение подчёркивания ссылок. */
   position: relative; /* Это необходимо при использовании Internet Explorer 6 для того, чтобы ссылка по всей своей площади была «кликабельной». */
}
.navigation li a:hover {
   background: #92d3d3; /* Цвет блока при наведении курсора. */
   color: #6b6b6b;  /* Цвет текста при наведении курсора. */
}
</style>
</head>
<body>
<ul> 
   <!-- Описание ссылок в меню и сами ссылки. -->
   <li><a href="https://www.internet-technologies.ru/news" target="_blank">Новости</a></li>
   <li><a href="https://www.internet-technologies.ru/articles" target="_blank">Статьи</a></li>
   <li><a href="https://www.internet-technologies.ru/templates/" target="_blank">Шаблоны</a></li>
   <li><a href="https://www.internet-technologies.ru/books" target="_blank">Книги</a></li>
   <li><a href="https://www.internet-technologies.ru/scripts" target="_blank">Скрипты</a></li>
   <li><a href="https://www.internet-technologies.ru/lessons" target="_blank">Видео</a></li>
   <li><a href="http://talk.internet-technologies.ru/" target="_blank">Форум</a></li>
</ul>
<body>
</body>
</html>

В конечном итоге получается подобное горизонтальное меню:


Код вертикального меню записывается так:
<head>
<title>Вертикальное меню сайта</title>
<style type="text/css">
.navigation {
   list-style: none; /* Отключение отображения маркеров. */
   width: 120px;  /* Ширина меню. */
}
.navigation li {
   margin-top: 5px; /* Отступ между блоками по высоте, необходимый для того чтобы пункты меню не сливались */
   font-family: Verdana, Arial, Helvetica, sans-serif; /* Тип шрифта пунктов меню */
   font-size: 14px; /* Размер текста меню */
}
.navigation li a {
   display: block; /* Изменение отображения на блочное для того, чтобы иметь возможность задать внутренние отступы.  */
   padding: 4px 15px;  /* Отступы внутри блоков. */
   background: #0db5b5; /* Цвет блоков меню. */
   color: #3f3f3f; /* Цвет текста в блоках меню. */
   text-decoration: none; /* Устранение подчёркивания ссылок. */
   position: relative; /* Это необходимо при использовании Internet Explorer 6 для того, чтобы ссылка по всей своей площади была «кликабельной». */
}
.navigation li a:hover {
   background: #92d3d3; /* Цвет фона при наведении курсора мыши */
   color: #6b6b6b;  /* Цвет текста при наведении курсора мыши */
}
</style>
</head>
<body>
<!-- Описание ссылок в меню и сами ссылки. -->
<ul> 
   <li><a href="https://www.internet-technologies.ru/news" target="_blank">Новости</a></li>
   <li><a href="https://www.internet-technologies.ru/articles" target="_blank">Статьи</a></li>
   <li><a href="https://www.internet-technologies.ru/templates/" target="_blank">Шаблоны</a></li>
   <li><a href="https://www.internet-technologies.ru/books" target="_blank">Книги</a></li>
   <li><a href="https://www.internet-technologies.ru/scripts" target="_blank">Скрипты</a></li>
   <li><a href="https://www.internet-technologies.ru/lessons" target="_blank">Видео</a></li>
   <li><a href="http://talk.internet-technologies.ru/" target="_blank">Форум</a></li>
</ul>
<body>
</body>
</html>

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


Руководствуясь всеми вышеперечисленными принципами, приведём код для простого выпадающего меню:
<ul>
  <li><a href="https://www.internet-technologies.ru/news">Новости</a></li>
  <li><a href="https://www.internet-technologies.ru/articles" target="_blank">Статьи</a>
    <ul>
      <li><a href="#">Ссылка 1</a></li>
      <li><a href="#">Ссылка 2</a></li>
      <li><a href="#">Ссылка 3</a></li>
    </ul>
  </li>
  <li><a href="https://www.internet-technologies.ru/templates/">Шаблоны</a>
    <ul>
      <li><a href="#">Ссылка 1</a></li>
    </ul>
  </li>
  <li><a href="https://www.internet-technologies.ru/books">Книги</a></li>
  <li><a href="https://www.internet-technologies.ru/scripts">Скрипты</a></li>
  <li><a href="https://www.internet-technologies.ru/lessons">Видео</a></li>
  <li><a href="http://talk.internet-technologies.ru">Форум</a></li>
</ul>

<style type="text/css">	

#menu {
  background: #0db5b5;
  width: 60%;
  padding:1;
  text-align: center;
  float:left;
  font-family: Verdana, Arial, Helvetica, sans-serif; 
}
#menu a {
  color: #3f3f3f;
  text-decoration: none;
}
#menu a:hover {
  color: #6b6b6b;
}
#menu ul {
  padding:0;
  margin:0;
}
#menu li {
  list-style: none;
  padding: 0 15px 0 0;
  width:100px;
  margin: 0 auto;
  float:left;
  line-height: 50px;
}
#menu li ul { 
  position:absolute;
  display: none;
} 
#menu li ul li {
  float: none;
  display: inline;
  width:100px;
  line-height:35px;
}
#menu li ul li:hover {
  background: #c392b;
}
#menu li:hover ul {
  display:block;
}
#menu li ul li { 
  display: block; 
  background:#92d3d3;
}
</style>

Получаем такое выпадающее меню:


Как вы видите, достаточно простая HTML разметка и всего несколько строк CSS кода позволяют создать простое, но стильное меню, которое обязательно найдёт свое место в каком-либо веб-сайте. Обязательно попробуйте реализовать что-то подобное самостоятельно.

Желаем удачи!

Создание горизонтального меню с помощью HTML и CSS

В этой статье мы рассмотрим, как создать горизонтальное меню для сайта с помощью HTML и CSS. Чтобы получить интерактивное меню, нужно использовать JQuery, HTML 5 и CSS3.

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

Шаг 1: Откройте любой HTML — редактор и напишите код HTML с элементами списка ul-li и сохраните файл с расширением .html:

<html>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=iso-8859-1″ />
<title>Horizontal CSS Menu Bar</title>
<body>
<ul id=”menu”>
    <li><a href=”#”>Link1</a></li>
    <li><a href=”#”>Link2</a>
          <ul>
            <li><a href=”#”>Link2.1</a></li>
            <li><a href=”#”>Link2.2</a></li>
            <li><a href=”#”>Link2.3</a></li>
         </ul>
    </li>
    <li><a href=”#”>Link3</a>
          <ul>
          <li><a href=”#”>Link3.1</a></li>
          <li><a href=”#”>Link3.2</a></li>
          </ul></li>    
    <li><a href=”#”>Link4</a></li>
</ul>
</body>
</html>

Теперь, если вы откроете эту HTML — страницу в браузере, она будет выглядеть, как показано ниже. Далее мы добавим CSS код для позиционирования горизонтального меню с подменю для сайта.

• Link1
• Link2
o Link2.1
o Link2.2
o Link2.3
• link3
o Link3.1
o Link3.2
• link4

Шаг 2: Здесь мы добавляем CSS в HTML разметку. Этот тип CSS кода называется внутренним. Во внешнем CSS мы размещаем код в отдельном файле, сохраняя его с расширением .css и подключая на странице HTML. Преимущество использования внешнего CSS заключается в его многократном использовании. Чтобы сделать его проще, мы добавили внутренний CSS. Для этого разместите тег <style> под head в HTML и напишите CSS код внутри блока <style>. Для начала мы добавим несколько основных свойств, чтобы установить ширину, высоту, цвет фона:

<style>
/* Main */
    #menu{
    width: 100%;
    margin: 0;
    padding: 10px 0 0 0;
    list-style: none;  
    background: #111;
    }
</style>

После добавления CSS:


Шаг 3: Теперь закруглите угол, чтобы придать ему красивый внешний вид. Для этого используйте свойство CSS border-radius и установите значение 50px:
#menu{
    width: 100%;
    margin: 0;
    padding: 10px 0 0 0;
    list-style: none;  
    background: #111;
    border-radius: 50px;
}

После добавления CSS:


Он выглядит лучше, правда?

Шаг 4: Теперь упорядочим структуру будущего горизонтального резинового меню для сайта. Все элементы ‘li’ будут находиться в одной строке, а все элементы ‘ul’ будут располагаться ниже:

#menu li{
    float: left;
    padding: 0 0 10px 0;
    position: relative; 
}

После добавления CSS:


Шаг 5: Настроим свойства для тега ‘a’ (при наведении курсора мыши) такие как цвет, оформления текста, шрифт:
#menu a{
    float: left;
    height: 25px;
    padding: 0 25px;
    color: #CC6600;
    font: bold 12px/25px Arial, Helvetica;
    text-decoration: none;
    text-shadow: 0 1px 0 #000; 
}

После добавления CSS:


Шаг 6: Добавьте еще одно свойство, чтобы цвет ссылок изменялся при нажатии:
#menu li:hover > a{
    color: #CC3333; 
}

Шаг 7: Теперь добавьте два CSS блока для элементов ‘ul’. Первый блок будет скрывать все элементы ‘ul’, также необходимо задать такие свойства отображения как цвет, внутренний отступ, позиция. Второй блок — для отображения всех элементов ‘ul’ при наведении курсора мыши на элементы ‘li’:

#menu ul{
    list-style: none;
    margin: 0;
    padding: 0;    
    display: none;
    position: absolute;
    top: 35px;
    left: 0;
    background: #222; }
   #menu li:hover > ul{
    display: block; 
}

После добавления CSS:


Шаг 8: Установите padding (внутренний отступ) 0, margin (внешний отступ) 0 для всех элементов, чтобы многоуровневое горизонтальное меню для сайта лучше смотрелось:
#menu ul li{
    float: none;
    margin: 0;
    padding: 0;
    display: block; 
}

Шаг 9: Установите свойства для всех элементов ‘а’, которые располагаются под тегом ‘ul’:

#menu ul a{    
    padding: 10px;
    height: auto;
    line-height: 1;
    display: block;
    white-space: nowrap;
    float: none;
    text-transform: none;
 }

Шаг 9: Добавьте еще несколько строк, чтобы улучшить визуальные эффекты оригинального горизонтального меню для сайта, установите правильный размер шрифта для черного фона:

#menu:after{
    visibility: hidden;
    display: block;
    font-size: 0;
    content: ” “;
    clear: both;
    height: 0;
 }

После добавления CSS:


На этом все. Мы успешно создали горизонтальное меню. Теперь добавим еще несколько строк, чтобы придать нашей панели меню более профессиональный вид.

Дополнительный шаг 1: Для отображения указателя под выделенной ссылкой добавьте код, представленный ниже:

#menu ul li:first-child a:after{
    content: ”;
    position: absolute;
    left: 30px;
    top: -8px;
    width: 0;
    height: 0;
    border-left: 5px solid transparent;
    border-right: 5px solid transparent;
    border-bottom: 8px solid #FF0000;
}

После добавления CSS:


Дополнительный шаг 2: Установите свойство border-radius 5px под элементом ‘#menu ul’, который придаст небольшое закругление для всех тегов ul:

После добавления CSS:


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

Данная публикация представляет собой перевод статьи «Create horizontal menu bar using HTML and CSS» , подготовленной дружной командой проекта Интернет-технологии.ру

16 CSS Mobile Menus

Коллекция отобранных вручную бесплатных HTML и CSS мобильных меню примеров кода. Обновление коллекции за октябрь 2018 г. 1 новый предмет.

  1. Меню CSS
  2. Круговое меню CSS
  3. Выпадающие меню CSS
  4. Боковые меню CSS
  5. Горизонтальные меню CSS
  6. Полноэкранные меню CSS
  7. Скользящие меню CSS
  8. CSS Переключить меню
  9. Меню CSS вне холста
Автор
  • Джеффри Крофте
О коде

Анимированное мобильное меню

Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari

Зависимости: -

Автор
  • Мел Шилдс
О коде

CSS Мобильная навигация

На основе "Раскладывающегося меню гамбургеров на чистом CSS" Эрика Тервана.

Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari

Зависимости: -

Автор
  • Стас Мельников
О коде

Анимация мобильного меню

Лучше работает на мобильных устройствах. Кнопка гамбургера удобна для левшей и правшей.

Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari

Зависимости: -

Автор
  • Кайл Лавери
Сделано с
  • HTML (мопс) / CSS (SCSS) / JavaScript (Babel)
О коде

Концепция мобильного меню

На основе «Идеи веб-навигации для iPhone X» https: // dribbble.com / shots / 3851367-iPhone-X-Web-Navigation-Idea.

Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari

Зависимости: -

Автор
  • тиффани чунг
О коде

Волшебное мобильное мегаменю

Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari

Зависимости: -

Сделано с
  • HTML / CSS (SCSS) / JavaScript (Babel)
О коде

Анимированная доступная навигация

Доступное меню навигации с прогрессивным улучшением с круговым анимированным фоном.

Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari

Зависимости: -

Автор
  • Райден Канеда
Сделано с
  • HTML (Haml) / CSS (SCSS) / JavaScript
О коде

Стиль мобильного меню

Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari

Зависимости: -

Автор
  • Иван Богачев
Сделано с
  • HTML (мопс) / CSS (PostCSS) / JavaScript (Babel)
О коде

Меню с эффектами прокрутки

Меню App Menu с эффектами прокрутки и наведения.

Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari

Зависимости: -

Автор
  • Кирстен Хамфрис
О коде

Мобильное меню

Мобильное меню на чистом CSS.

Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari

Зависимости: -

Автор
  • Мисников Макс
О коде

Мобильная навигация

только CSS мобильная навигация триггер и меню.

Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari

Зависимости: -

Автор
  • Рави Диман
О коде

Навигация на чистом CSS

Навигация на чистом CSS просто и легко.

Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari

Зависимости: -

Автор
  • Сделано на Марсе
Сделано с
  • HTML / CSS (SCSS) / JavaScript
О коде

3 Анимация для мобильной навигации

3 Чистый CSS мобильная навигация анимации.

Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari

Зависимости: -

Автор
  • Нарендра Н Шетти
О коде

Прототип слайдера мобильного меню

Прототип слайдера мобильного меню в HTML, CSS и JavaScript.

Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari

Зависимости: -

Сделано с
  • HTML / CSS (SCSS) / JavaScript
О коде

Навигация по приложению

Концепция навигации мобильного приложения.

Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari

Зависимости: -

Автор
  • Матье Лавуа
Сделано с
  • HTML (мопс) / CSS (SCSS) / JavaScript
О коде

Мобильное меню в стиле Apple

В духе мобильного меню от Apple.

Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari

Зависимости: -

CSS горизонтальное навигационное меню - блог Jesin

CSS Horizontal Navigation Menu - это базовое меню, которое отображается на большинстве веб-сайтов сразу под логотипом. Этот тип меню очень легко создать, используя неупорядоченные списки HTML и CSS. Он удобен для поисковых систем и использует дизайн без таблиц. Горизонтальное меню CSS будет создано с эффектом наведения, чтобы оживить вещи.Это изменит цвет и стиль элемента меню при наведении на него указателя мыши. Приступим к пошаговому созданию горизонтального меню CSS

Создание горизонтального меню CSS

Используя HTML-тег

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

      

    Атрибут ID добавляется к тегу ul, чтобы можно было использовать селектор CSS ID для применения стилей. Когда этот HTML-файл открывается в веб-браузере, вы видите маркеры перед каждым пунктом меню. Следующим шагом будет его удаление с помощью CSS. Наша цель - удалить пули, убрать отступы и сделать их горизонтальными.Добавьте следующий код в тег заголовка.

      

    Параметр list-style-type: none удалит стиль маркера, а заполнение: 0 установит нулевое расстояние между списком и левой стороной. Элементы li являются блочными, что означает, что каждый элемент занимает одну полную строку. Чтобы все они отображались на одном однострочном дисплее: используется встроенный.Пункты меню теперь должны быть разнесены. Для этого будет изменен атрибут заполнения, если тег a.

     ul # menu a {
    отступ: 4px 10px;
    плыть налево;
    } 

    Первое значение 4px устанавливает отступ для верха и низа, значение 10px - для левого и правого. Эти значения могут быть изменены в соответствии с вашими требованиями. Теперь меню стало горизонтальным, а элементы разнесены. Ссылки выглядят некрасиво в синем цвете. Следующий код CSS изменит цвет текста ссылки и придаст ей цвет фона.

     ul # menu a {
    отступ: 4px 10px;
    плыть налево;
    цвет: # f0ffff;
    цвет фона: серый;
    текстовое оформление: нет;
    } 

    Для атрибута text-decoration установлено значение none, чтобы удалить подчеркивание текста ссылки. Последний штрих - добавить эффект наведения для пунктов меню. Каждый раз, когда указатель мыши перемещается над элементом, его цвет, стиль и цвет фона должны быть изменены. Это делается с помощью наведения псевдокласса.

     ul # menu a: hover {
    цвет: # fffff0;
    текст-оформление: подчеркивание;
    цвет фона: # 000;
    } 

    Демонстрация всего кода доступна здесь.CSS горизонтальное меню

    Меню вкладок с горизонтальной выпадающей линией только для CSS3

    Недавно Web Designer Wall опубликовал это действительно классное руководство по созданию выпадающего меню с использованием только CSS3 (без javascript). Не будучи человеком, который просто сидел и позволял всему сидеть как есть, этот подход вдохновил меня на изменение. Результатом, каким бы прямым он ни был, является горизонтальное выпадающее меню, основанное на вариации tut из WDW.

    Разметка XHTML:
     
     

    CSS:
     #menu {
      ширина: 960 пикселей;
      высота: 40 пикселей;
      ясно: оба;
    }
    
    ul # nav {
      плыть налево;
      ширина: 960 пикселей;
      маржа: 0;
      отступ: 0;
      стиль списка: нет;
      фон: # dc0000 url (../img/menu-parent.png) repeat-x;
      -moz-border-radius-topright: 10 пикселей;
      -webkit-border-top-right-radius: 10 пикселей;
      -moz-border-radius-topleft: 10 пикселей;
      -webkit-border-top-left-radius: 10 пикселей;
    }
    
    ul # nav li {
      дисплей: встроенный;
    }
    
    ul # nav li a {
      плыть налево;
      шрифт: жирный 1.1em arial, verdana, tahoma, sans-serif;
      высота строки: 40 пикселей;
      цвет: #fff;
      текстовое оформление: нет;
      тень текста: 1px 1px 1px # 880000;
      маржа: 0;
      отступ: 0 30 пикселей;
      фон: # dc0000 url (../ img / menu-parent.png) repeat-x;
      -moz-border-radius-topright: 10 пикселей;
      -webkit-border-top-right-radius: 10 пикселей;
      -moz-border-radius-topleft: 10 пикселей;
      -webkit-border-top-left-radius: 10 пикселей;
    }
    
    / * ПРИМЕНЯЕТ АКТИВНОЕ СОСТОЯНИЕ * /
    ul # nav.current a, ul # nav li: hover> a {
      цвет: #fff;
      текстовое оформление: нет;
      тень текста: 1px 1px 1px # 330000;
      фон: # bb0000;
      -moz-border-radius-topright: 10 пикселей;
      -webkit-border-top-right-radius: 10 пикселей;
      -moz-border-radius-topleft: 10 пикселей;
      -webkit-border-top-left-radius: 10 пикселей;
    }
    
    / * СПИСОК ПОДМЕНЮ, СКРЫТЫЙ ПО УМОЛЧАНИЮ * /
    ul # nav ul {
      дисплей: нет;
    }
    
    / * ПРИ НАБОР ПУНКТА МЕНЮ ПЕРВОГО УРОВНЯ ПОЯВЛЯЕТСЯ ДЕТСКОЕ МЕНЮ * /
    ul # nav li: hover> ul {
      позиция: абсолютная;
      дисплей: блок;
      ширина: 920 пикселей;
      высота: 45 пикселей;
      позиция: абсолютная;
      маржа: 40px 0 0 0;
      фон: # aa0000 url (../img/menu-child.png) repeat-x;
      -moz-border-radius-bottomright: 10 пикселей;
      -webkit-border-bottom-right-radius: 10px;
      -moz-border-radius-bottomleft: 10 пикселей;
      -webkit-border-нижний левый радиус: 10 пикселей;
    }
    
    ul # nav li: hover> ul li a {
      плыть налево;
      шрифт: жирный 1.1em arial, verdana, tahoma, sans-serif;
      высота строки: 45 пикселей;
      цвет: #fff;
      текстовое оформление: нет;
      тень текста: 1px 1px 1px # 110000;
      маржа: 0;
      отступ: 0 30px 0 0;
      фон: # aa0000 url (../ img / menu-child.png) repeat-x;
    }
    
    ul # nav li: hover> ul li a: hover {
      цвет: # 120000;
      текстовое оформление: нет;
      текстовая тень: нет;
    }
     

    Как создать горизонтальную навигацию с помощью CSS3

    В этой статье мы рассмотрим процесс создания горизонтального меню с помощью CSS.По сути, меню CSS состоит из списков, поэтому создание их - наш первый шаг.

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

    #menu {
    width: 550px;
    высота: 35 пикселей;
    размер шрифта: 16 пикселей; Семейство шрифтов
    : Tahoma, Geneva, sans-serif;
    font-weight: жирный;
    выравнивание текста: по центру;
    тень текста: 3px 2px 3px # 333333;
    цвет фона: # 8AD9FF;
    радиус границы: 8 пикселей;
    }

    Вот первый шаг настройки кода меню CSS, путем создания оболочки для текста и определения цвета фона.Были применены два эффекта CSS3: text-shadow и border-radius.

    Так выглядит наше меню.

    Следующий фрагмент кода удаляет заполнение по умолчанию из списка.

    #menu ul {
    высота: авто;
    отступ: 8 пикселей 0 пикселей;
    маржа: 0 пикселей;
    }

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

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

Оставить комментарий

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *