Как создать меню на сайте

21 ноября 2019

Содержание

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

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

Создание навигации

Что такое навигация? Это набор ссылок, зачастую упорядоченных и сгруппированных по смыслу. Навигационное меню часто создается с использованием HTML-тега списка

    , где в каждом пункте

  • содержится одна ссылка . В HTML5 для навигации ввели отдельный тег , куда можно просто помещать теги ссылок. После создания HTML-каркаса можно переходить к его стилизации с помощью CSS, где вы можете определять, каким будет ваше меню — вертикальным, горизонтальным, выпадающим и т. п.
    Допустим, у нас есть простая навигация с пятью ссылками, созданная в HTML на основе маркированного списка:

    • Home
    • About
    • Gallery
    • News
    • Contacts

    Изначально, без стилей наша навигация выглядит, как обычный список:

    Как создать меню на сайте

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

    .menu {
    list-style-type: none;
    margin: 0;
    padding: 0;
    }

    Как создать меню на сайте

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

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

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

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

    Блочные ссылки

    Прежде всего нужно сделать все теги блочными элементами:

    .menu a { display: block; }

    Существует несколько причин для этого:

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

    Как создать меню на сайте

    GIF

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

  • Исходя из второго пункта, можно отметить еще один положительный момент. Когда ссылка является блочным элементом, область ее кликабельности расширяется: даже если кликнуть по месту, где нет текста, она все равно сработает. Это удобно, потому что не надо прицеливаться по маленькой ссылке. А с помощью вертикальных отступов padding можно увеличить область кликабельности еще и по высоте.
  • Ширина меню

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

    .menu { width: 300px; }

    Как создать меню на сайте

    Вместо этого можно установить ширину для пунктов

  • либо для ссылок — визуально эффект может быть одинаковый, но учтите, что в таком случае ширина элемента .menu всё равно останется 100%.
     

    Разделение пунктов

    Чтобы визуально разделить пункты меню, можно задать каждому из них нижнюю или верхнюю границу. В зависимости от того, какую из них вы используете, у вас будет не хватать границы сверху или снизу меню. Это можно исправить, добавив еще одну границу к самому блоку .menu:

    .menu a {
    border-top: 1px solid blue;
    }
    .menu {
    border-bottom: 1px solid blue;
    }

    Как создать меню на сайте

    Высота пунктов и вертикальное выравнивание

    Сейчас ссылки меню выглядят слишком низкими, расположенными близко друг к другу. Если текст каждой ссылки не будет занимать более одной строки, то увеличить их высоту и сохранить при этом текст вертикально по центру можно с помощью свойств height и line-height:

    .menu a {
    height: 30px;
    line-height: 30px;
    }

    Как создать меню на сайте

    GIF

    Как видно на анимации, свойство height влияет на высоту ссылки, а межстрочный интервал line-height изменяет уже высоту самой текстовой строки. Обязательно задавайте одинаковые значения для этих двух свойств, если хотите, чтобы текст ссылки был вертикально отцентрирован.

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

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

    Способ первый

    Первый вариант — задать пунктам списка свойство display со значением inline либо inline-block:

    .menu li {
    display: inline;
    }

    Как создать меню на сайте

    При этом теги внутри

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

    После этого можно заняться оформлением ссылок. Например, можно сделать такой стиль:

    .menu a {
    text-decoration: none;
    font-family: sans-serif;
    color: #5757a0;
    display: inline-block;
    padding: 10px 20px;
    background-color: lavender;
    border-bottom: 5px solid #5757a0;
    }

    Как создать меню на сайте

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

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

    Они возникают, потому что браузер так воспринимает символ возврата каретки между закрывающим и открывающим тегами

  • . Эти промежутки можно убрать, записав HTML-код списка в одной строке:

    • Home
    • About
    • Gallery
    • …

    Как создать меню на сайте

    Однако это неудобно, ведь эти изменения придется вносить в HTML вручную, да и чтение кода затрудняется. Поэтому попробовать избавиться от промежутков можно с помощью отрицательного значения margin-right:

    .menu li {
    margin-right: -5px;
    }

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

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

    Способ второй

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

  • :

    .menu li {
    float: left;
    }

    Как создать меню на сайте

    Как видим, промежутков между пунктами уже нет. Все остальные стили работают, как и прежде. Но если вы добавите после навигации другой HTML-элемент (допустим,

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

    .menu {
    overflow: hidden;
    }

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

    GIF

    Примечание: если вы установите фон для элемента .menu, то вы не увидите его до тех пор, пока не примените к нему overflow: hidden. Логично, ведь как можно увидеть фон элемента, чья высота равна нулю?

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

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

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

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

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

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

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

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

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

    • Новости
    • Статьи
    • Шаблоны
    • Книги
    • Скрипты
    • Видео
    • Форум

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

    Как создать меню на сайте

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

    • Новости
    • Статьи
    • Шаблоны
    • Книги
    • Скрипты
    • Видео
    • Форум

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

    Как создать меню на сайте

    Руководствуясь всеми вышеперечисленными принципами, приведём код для простого выпадающего меню:

    • Новости
    • Статьи
      • Ссылка 1
      • Ссылка 2
      • Ссылка 3
    • Шаблоны
      • Ссылка 1
    • Книги
    • Скрипты
    • Видео
    • Форум

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

    Как создать меню на сайте

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

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

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

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

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

    Инструменты для создания панели навигации

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

      и

    • .
      Как оговаривалось в предыдущих публикациях, парный элемент

        создает маркированный список, а

      •  — один элемент списка. Для наглядности давайте напишем код простого меню:

        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        12
        13
        14
        15
        16

        Навигация сайта

        • Главная
        • Новости недели
        • Технологические достижения
        • Чат

        Навигация сайта

        • Главная
        • Новости недели
        • Технологические достижения
        • Чат

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

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

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

        Создадим-ка горизонтальную навигационную модель

        Такой вид навигации наиболее популярен. При горизонтальном оформлении панели все пункты меню расположены в шапке страницы или в «подвале» (иногда навигационные элементы дублируются, отображаясь одновременно и сверху, и снизу).

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

        Как создать меню на сайте

        Для трансформации мы используем свойство css под названием transform. Чтобы указать трансформацию, используется встроенная функция skewX, в которой угол наклона указывается в градусах.

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

        • -ms- (Internet Explorer)
        • -o- (Opera)
        • -webkit- (Chrome, Safari)
        • -moz- (Firefox)

        А теперь полученные знания применим к написанию примера.

        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        12
        13
        14
        15
        16
        17
        18
        19
        20
        21
        22
        23
        24
        25
        26
        27
        28
        29
        30
        31
        32
        33
        34
        35
        36
        37
        38
        39
        40

      • Главная
      • О компании
      • Продукция
      • Контакты
      • Главная
      • О компании
      • Продукция
      • Контакты
      • А теперь вертикально. я сказал вертикально!

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

        Для этого я воспользовался еще одним свойством css border-radius.

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

        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        12
        13
        14
        15
        16
        17
        18
        19
        20
        21
        22
        23
        24
        25
        26
        27
        28
        29
        30
        31
        32
        33

      • Главная
      • О компании
      • Продукция
      • Контакты
      • Главная
      • О компании
      • Продукция
      • Контакты
      • Как вы уже заметили, главное изменение в этом коде – это отсутствие объявления display: inline-block, который собственно и отвечал за горизонтальное расположение пунктов навигации.

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

        Мы с вами рассмотрели основные группы навигационных панелей, однако существует еще несколько разновидностей или лучше сказать дополнений.

        Как создать меню на сайте

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

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

        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        12
        13
        14
        15
        16
        17
        18
        19
        20
        21
        22
        23
        24
        25
        26
        27
        28
        29
        30
        31
        32
        33
        34
        35
        36
        37
        38
        39
        40
        41
        42
        43
        44
        45
        46
        47
        48
        49
        50
        51
        52
        53
        54
        55
        56
        57
        58
        59
        60
        61
        62
        63
        64
        65

        • Главная
        • Продукция

          • Конфеты
          • Торты
          • Печенье
        • Контакты
        • Главная
        • Продукция
          • Конфеты
          • Торты
          • Печенье
        • Контакты

        В данном примере я разделил единицы меню на два класса:

        Первый класс отвечает за основное меню, а s-menu – за подменю.

        В коде можно встретить такой прием, как .m-menu > li:hover или .m-menu > li.

        Так, при помощи :hover указывается, как будет вести себя элемент при наведении на него курсора.

        При этом знак «>» видоизменяет селектор так, чтобы блочно-строчными были только объекты, относящиеся к верхнему уровню.

        Изначально подменю было задано display: none, что оповещает обработчик скрывать данный объект. После наведения на элемент навигации с указанием hover, значение свойства display меняется на block и поэтому открывается выпадающий список.

        Как видите, реализация такого приема очень простая.

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

        С уважением, Роман Чуешов

        (Пока оценок нет) Загрузка…

        Создание меню навигации для сайта

        Александр Побединский

        Для того, чтобы было удобно перемещаться по сайту нужна навигация, которую я сделал использовав скрипты HTML и CSS. В результате моей работы, вы можете видеть 2 типа меню (вертикальное и горизонтальное). А теперь, постараюсь рассказать о тех задачах, которые, как мне кажется, должно выполнять меню для сайта:

        • Удобность в использовании;
        • Должна быть создана навигация по всем разделам сайта;
        • На каждой странице сайта должен быть выход на главную страницу;
        • Переход на любую страницу сайта максимум в 3 клика.

        Здесь я постараюсь максимально изложить материал по созданию меню, приготовьтесь, у многих могут возникнуть сложности, у меня по крайней мере они возникали. И так начнем!

        Как создать меню на сайте

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

        #navigation {
        width: 560px;
        height: 50px;
        margin: 0;
        padding: 0;
        background-image: url(img/gor_menu.jpg);
        background-repeat: no-repeat;
        background-position:center;
        }
        #navigation ul {
        list-style: none;
        margin: 0;
        padding: 0;
        }
        #navigation ul li {
        display: inline;
        margin: 0px;
        }
        #navigation ul li a {
        height:28px;
        display: block;
        float: left;
        color: #333333;
        text-decoration: none;
        font-family: Arial;
        font-size: 12px;
        font-weight: bold;
        background-image: url(img/menu_separatorline.jpg);
        background-repeat: no-repeat;
        background-position: right center;
        padding-top: 17px;
        padding-right: 15px;
        padding-bottom: 0;
        padding-left: 15px;
        }
        #navigation ul li a:hover {
        color:#FFF;
        background-image: url(img/button_hover.jpg);
        background-repeat: repeat-x;
        background-position: left top;
        }
        #navigation ul li#active a {
        background-image: url(img/button_hover.jpg);
        background-repeat: repeat-x;
        background-position: left top;
        }

        Не пугайтесь ничего страшного в этом коде нет. Чтобы вам было понятней напишу-ка я сразу HTML-код для данного меню:

        • Главная
        • О сайте
        • Зачем нужен сайт?
        • От автора
        • Контакты
        • Форум

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

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

        • Введение
        • Создание каркаса сайта
        • Создание меню сайта
        • Наполнение сайта
        • Использование PHP блоков
        • Создание базы данных
        • Выбор хостинга
        • Экспорт сайта на хостинг

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

        … — содержит всю структуру меню. В него же будет вставляться верхнее изображение, которое я подготовил заранее в Photoshop;

        Как создать меню на сайте

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

          …

        — содержит каркас самого меню;

        • Создание меню сайта
        • — это одна из позиций, где в a href=”#” нужно будет вставить необходимую ссылку;

        • — содержит нижнюю часть.
        • А вот такой, собственно, будет скрипт в нашей таблице стилей CSS:

        div#menu {
        width:144px; background:url(img/menu_1.jpg)
        top no-repeat; padding-top:40px;
        }
        div#menubody {
        background:url(img/menu_2.jpg) repeat-y;
        padding-left:15px;
        }
        div#menubottom {
        height:16px; background:url(img/menu_4.jpg)
        bottom no-repeat;
        }
        ul#menulist {
        width:100px; list-style-type:none;
        }
        ul#menulist li {
        height:32px; background:url(img/menu_3.gif)
        bottom repeat-x;
        }
        ul#menulist a {
        width:100px; height:25px; border-left:#75c5de
        10px solid; font:bold 10px Verdana, Arial, sans-serif;
        color:#ffffff; text-decoration:none; padding:5px 0 0 5px;
        display:block !important; display:inline-block;
        }
        ul#menulist a:hover {
        background:url(img/menu_5.jpg) left
        repeat-y ; color:#000
        }
        ul#menulist #active a {
        background: url(img/menu_5.jpg)
        left repeat-y;
        }

        Думаю, что вам не стоит объяснять код CSS. Если что то не понятно вы можете всегда спросить.

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

        Как создать меню на сайте

        Горизонтальное меню представляет собой список разделов сайта, поэтому логичнее разметить внутри элемента

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

          Как сделать горизонтальное меню: разметка и примеры оформления

          HTML-разметка и базовые стили для горизонтального меню

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

        • …
        • располагаются вертикально, занимая по ширине всю ширину элемента контейнера

            …

          , который в свою очередь занимает всю ширину его блока-контейнера.

          HTML разметка для горизонтальной навигации

          • Пункт меню
          • Пункт меню
          • Пункт меню
          • …

          Горизонтальное меню, находящееся внутри тега

            …

          , можно дополнительно помещать внутрь элемента … и/или . Благодаря этому html-разметке придается семантический смысл, а также появляется дополнительная возможность для форматирования блока меню.

          Существует несколько способов разместить их горизонтально. Для начала нужно сбросить стили браузера по умолчанию для элементов навигации:

          ul {
          list-style: none; /*убираем маркеры списка*/
          margin: 0; /*убираем верхнее и нижнее поле, равное 1em*/
          padding-left: 0; /*убираем левый отступ, равный 40px*/
          }
          a {text-decoration: none; /*убираем подчеркивание текста ссылок*/}

          See the Pen GJxayB by Elena Nazarova (@nazarelen) on CodePen.

          Способ 1. li {display: inline;}

          Делаем элементы списка строчными. В результате они располагаются по горизонтали, с правой стороны между ними добавляется промежуток, равный 0.4em (вычисляется относительно размера шрифта). Чтобы убрать его, добавляем для li отрицательное правое поле li {margin-right: -4px;}. Дальше стилизуем ссылки по своему желанию.

          Способ 2. li {float: left;}

          Делаем элементы списка плавающими. В результате они располагаются по горизонтали. Высота блока-контейнера ul становится равной нулю. Чтобы решить эту проблему, добавляем для ul {overflow: hidden;}, расширяя его и позволяя ему таким образом содержать плавающие элементы. Для ссылок добавляем a {display: block;} и стилизуем их по своему желанию.

          Способ 3. li {display: inline-block;}

          Делаем элементы списка строчно-блочными. Они располагаются по горизонтали, с правой стороны образуется промежуток, как и в первом случае. Для ссылок добавляем a {display: block;} и стилизуем их по своему желанию.

          Способ 4. ul {display: flex;}

          Делаем список ul гибким контейнером с помощью модели CSS3 flexbox. В результате элементы списка располагаются горизонтально. Добавляем для ссылок a {display: block;} и стилизуем их по своему желанию.

          1. Адаптивное меню с эффектом подчёркивания при наведении на ссылку

          • Work
          • About
          • Blog
          • Contact

          Как сделать меню в html

          Как создать меню на сайте

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

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

          Содержание статьи

          Как сделать меню на html

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

          К примеру, для создания меню мы используем список с классом class=”menu” (название класса любое, только латинские буквы), и код html будет выглядеть так:

          • Главная
          • Статьи
          • Обо мне
          • Контакты

          В стилевом оформление для меню я указал обязательные свойства с нужными значениями:

          Обязательные параметры и значения CSS

          • margin: 0; – убираем все отступы списка, иначе браузер подставит значения по умолчанию 20px;
          • list-style-type: none; – убираем маркеры у пунктов меню, иначе браузер добавит точки или цифры.

          Вот таким образом делается меню на html страницах, и теперь перейдём к созданию горизонтального меню и рассмотрим всё на примерах. Для отображения горизонтального меню применяя список, нам достаточно прописать в вышеуказанный код всего один параметр display: inline;, чтобы пункты меню выровнялись в одну строку и шли друг за другом по горизонтали. А так же добавим отступы между пунктами меню с помощью margin.

          • Главная
          • Статьи
          • Обо мне
          • Контакты

          И выглядеть это будет так:

          Горизонтальное меню у нас готово, осталось придать ему красивый внешний вид.

          Давайте каждому пункту в горизонтальном меню придадим рамку border и сделаем у неё скошенные края, заполним определённым цветом background-color ( добавим фон для пункта меню ), и изменим вид ссылки.

          • Главная
          • Статьи
          • Обо мне
          • Контакты

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

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

          И для наглядности сделал пункты меню по центру, применив свойство text-align: center;, которое можно удалить (выровняется автоматически по левому краю), либо задать значение text-align: right; и горизонтальное меню отобразится по правому краю.

          Кстати вы можете так же воспользоваться готовое меню на css и jQuery, которые вы можете там воочию посмотреть и бесплатно скачать.

          Вертикальное меню на CSS делается и оформляется на странице практически так же как и горизонтальное, только здесь изменяется в .menu-2 li {… параметр со значением display: block; (указывает на блочный элемент), что придаёт ему вертикальное отображение пунктов меню.

          И ещё одно дополнение к вертикальному меню: так как оно в большинстве случаев находится в боковой колонке сайта, которое имеет фиксированную ширину, то и мы вынуждены задать ширину width: 100%; нашему вертикальному меню, чтобы оно полностью занимало всю ширину колонки.

          Давайте рассмотрим вертикальное меню CSS на примере:

          • Первый пункт меню
          • Второй пункт меню
          • Третий пункт меню
          • Четвёртый пункт меню

          Вот так вертикальное меню отобразится на странице:

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

          Для того, чтобы выпадающее меню строго появлялось напротив ведущей ссылки, необходимо в CSS для тега li, где находится эта ссылка, прописать position: relative;, а для выпадающего меню position: absolute;

          Давайте напишем html код для выпадающего меню на CSS.

          • Первый пункт меню
          • Второй пункт меню ⇒
            • Первый подпункт
            • Второй подпункт
            • Третий подпункт ⇒
              • Первая ссылка
              • Вторая ссылка
              • Третья ссылка
              • Четвёртая ссылка
            • Четвёртый подпункт
          • Третий пункт меню ⇒
            • Первая ссылка
            • Вторая ссылка
            • Третья ссылка
            • Четвёртая ссылка
          • Четвёртый пункт меню

          Посмотрите, как будет выглядеть на странице выпадающее меню на CSS.

          Точно таким же образом прописывается выпадающее меню и при горизонтальном расположение навигации. Единственное, это не забывайте менять значения у параметров top и left (отступ сверху и слева).

          Посмотрите!

          Как сделав всего 3 изменения в CSS, наше вертикальное расположение навигации с выпадающим меню, превратиться в горизонтальное с выпадающим меню.

          Изменения в CSS для выпадающего меню

          • Заменить в .saitbar – width: 240px; на width: 100%;
          • Заменить в .menu-4 li – display: block; на display:inline-block;
          • Заменить в .menu-4 ul.podmenu – top: 0; на top: 34px;
          • Заменить в .menu-4 ul.podmenu – left: 214px; на left: 7px;

          18.08.2018

          Горизонтальное меню для сайта на HTML+CSS

          Доброго времени суток, дорогие читатели. Сегодня мы разберем тему «как сделать горизонтальное меню используя HTML и CSS».

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

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

          HTML-код для горизонтального меню

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

          Для создания меню используют теги

            ,

          • и .
            Если вам не совсем понятно, что такое эти html-теги, css, таблицы, то почитайте об основных технологиях для создания сайта.
            Пример использования html тегов для создания меню в коде ниже:

            • Главная
            • Услуги
            • Цены
            • Контакты

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

            ul {
            list-style: none; /*убираем маркеры списка*/
            margin: 0; /*убираем отступы*/
            padding-left: 0; /*убираем отступы*/
            }
            a {
            text-decoration: none; /*убираем подчеркивание текста ссылок*/
            }
            li {
            float:left; /*Размещаем список горизонтально для реализации меню*/
             margin-right:5px; /*Добавляем отступ у пунктов меню*/
            }

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

            Пример каркаса (шаблона) вашего будущего меню

            • Получилось все достаточно простенько, вы ,конечно же, хотите сразу красивое главное меню, но без понимания основ у вас просто не получится создать хорошее меню без ошибок в html и css.
            • Существует так же несколько других CSS методов используемых для того чтобы сделать меню горизонтальным помимо float:left;, например, display:inline-block; или display:flex;, но рекомендуется использовать способ описанный выше.
            • Давайте же наполним наш шаблон меню различными стилями и сделаем его красивым.

            Примеры красивого горизонтального меню для сайта

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

            Все «красивости» вы можете создать для своего сайта сами, а не искать в интернете. Проще всего это сделать взяв за основу один из примеров ниже

            Простое меню синего цвета с раздельными пунктами

            CSS стили «верхнего» меню

            Ниже расположены стили данного меню. HTML остается тем же, что и в «каркасе» меню.

            ul {
            list-style: none; /*убираем маркеры списка*/
            margin: 0; /*убираем отступы*/
            padding-left: 0; /*убираем отступы*/
            margin-top:25px; /*делаем отступ сверху*/
            }
            a {
            text-decoration: none; /*убираем подчеркивание текста ссылок*/
            background:#30A8E6; /*добавляем фон к пункту меню*/
            color:#fff; /*меняем цвет ссылок*/
            padding:10px; /*добавляем отступ*/
            font-family: arial; /*меняем шрифт*/
            border-radius:4px; /*добавляем скругление*/
            -moz-transition: all 0.3s 0.01s ease; /*делаем плавный переход*/
            -o-transition: all 0.3s 0.01s ease;
            -webkit-transition: all 0.3s 0.01s ease;
            }
            a:hover {
            background:#1C85BB;/*добавляем эффект при наведении*/
            }
            li {
            float:left; /*Размещаем список горизонтально для реализации меню*/
            margin-right:5px; /*Добавляем отступ у пунктов меню*/

            }

            Главное меню, расположенное на цветной линии с красным фоном

            CSS стили меню на цветной линии

            ul {
            list-style: none; /*убираем маркеры списка*/
            margin: 0; /*убираем отступы*/
            padding-left: 0; /*убираем отступы*/
            margin-top:25px; /*делаем отступ сверху*/
            background:#FF4444; /*добавляем фон всему меню (заменив этот параметр, вы поменяете цвет всего меню)*/
            height: 50px; /*задаем высоту*/
            }
            a {
            text-decoration: none; /*убираем подчеркивание текста ссылок*/
            background:#FF4444; /*добавляем фон к пункту меню (заменив этот параметр, вы поменяете цвет всех пунктов меню)*/
            color:#fff; /*меняем цвет ссылок*/
            padding:0px 15px; /*добавляем отступ*/
            font-family: arial; /*меняем шрифт*/
            line-height:50px; /*ровняем меню по вертикали*/
            display: block;
            border-right: 1px solid #F36262; /*добавляем бордюр справа*/
            -moz-transition: all 0.3s 0.01s ease; /*делаем плавный переход*/
            -o-transition: all 0.3s 0.01s ease;
            -webkit-transition: all 0.3s 0.01s ease;

            }
            a:hover {
            background:#D43737;/*добавляем эффект при наведении*/
            }
            li {
            float:left; /*Размещаем список горизонтально для реализации меню*/
            }

            Выпадающее меню на HTML+CSS

            Для реализации дополнительного выпадающего (раскрывающегося) меню на сайте у какого-либо пункта меню нам необходимо добавить дополнительный перечень пунктов в HTML-код для какой-либо ссылки из горизонтального меню и изменить стили CSS. В стилях мы будем применять простой трюк — изменение отображения раскрывающегося меню по средствам наведения на нужный нам пункт в верхнем меню. Для примера возьмем пункт «услуги».

            Пример создания простого выпадающего меню

            HTML код выпадающего меню

            • Главная
            • Услуги
              • Услуга 1
              • Длинная услуга 2
              • Услуга 3
            • Цены
            • Контакты

            Стили CSS выпадающего меню

            ul {
            list-style: none; /*убираем маркеры списка*/
            margin: 0; /*убираем отступы*/
            padding-left: 0; /*убираем отступы*/
            margin-top:25px; /*делаем отступ сверху*/
            background:#819A32; /*добавляем фон всему меню*/
            height: 50px; /*задаем высоту*/
            }
            a {
            text-decoration: none; /*убираем подчеркивание текста ссылок*/
            background:#819A32; /*добавляем фон к пункту меню*/
            color:#fff; /*меняем цвет ссылок*/
            padding:0px 15px; /*добавляем отступ*/
            font-family: arial; /*меняем шрифт*/
            line-height:50px; /*ровняем меню по вертикали*/
            display: block;
            border-right: 1px solid #677B27; /*добавляем бордюр справа*/
            -moz-transition: all 0.3s 0.01s ease; /*делаем плавный переход*/
            -o-transition: all 0.3s 0.01s ease;
            -webkit-transition: all 0.3s 0.01s ease;

            }
            a:hover {
            background:#D43737;/*добавляем эффект при наведении*/
            }
            li {
            float:left; /*Размещаем список горизонтально для реализации меню*/
            position:relative; /*задаем позицию для позиционирования*/
            }

            /*Стили для скрытого выпадающего меню*/
            li > ul {
            position:absolute;
            top:25px;
            display:none;
            }

            /*Делаем скрытую часть видимой*/
            li:hover > ul {
            display:block;
            width:250px; /*Задаем ширину выпадающего меню*/
            }
            li:hover > ul > li {
            float:none; /*Убираем горизонтальное позиционирование*/
            }

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

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

            Для удобства я собрал все меню, представленные выше, в одном html-файле, который вы можете скачать ниже. Выглядит это как на скриншоте: 

            Как создать меню на сайте

            Поделитесь в одной из социальных сетей и скачивание сразу же будет доступно.

            Скачать все горизонтальные меню в одном HTML файле

            Благодарю за внимание.

            CSS меню

            • Вертикальное меню
            • Горизонтальное меню
            • Выпадающее меню

            Если ваш веб-сайт не ограничивается одной веб-страницей, то стоит подумать о добавлении панели навигации (меню).

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

            Самым простым способом добавить панель навигации на сайт является создание меню с помощью CSS и HTML.

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

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

          • нашего списка будет содержать по одной ссылке:

            • Главная
            • Новости
            • Контакты
            • О нас

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

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

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

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

            #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;
            }

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

            • Главная
            • Новости
            • Контакты
            • О нас

            Попробовать »

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

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

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

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

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

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

          • нужно присвоить значение inline, чтобы пункты списка располагались друг за другом.

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

            • Главная
            • Новости
            • Контакты
            • О нас

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

            #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-структуру нашего меню. Основные навигационные ссылки мы поместим в маркированный список:

            • Главная
            • Новости
            • Контакты
            • О нас

            Подпункты мы разместим в отдельном списке, вложив его в элемент

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

            • Главная
            • Новости
            • Контакты
              • Адрес
              • Телефон
              • Email
            • О нас

            Попробовать »

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

          • список снова был преобразован в блочный элемент:

            #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; }
            Попробовать »