HI-BLOGСайт в мире Web и IT
← Hi-Blog

Как сверстать простое горизонтальное меню на CSS

Восстановленная статья от 2015-05-05. Не удалось восстановить 2 исходных иллюстраций; отсутствующие изображения не заменены посторонними. Подходящей исходной обложки в восстановленных источниках нет.

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

В этой статье я расскажу как сверстать такое меню для вашего сайта. А так же рассмотрим вариант как центрировать горизонтальное меню.

Итак, приступим.

Базовая разметка

Разметка нашей страницы с меню будет стандартной, и без излишеств. Единственное, чтобы наша страница не казалась пустой, добавлен нейтральный учебный текст – Не выходи из комнаты.


<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <title>Простое горизонтальное меню</title>
    <link rel="stylesheet" href="style.css">
</head>
<body>
    
    <div id="wrapper">
        
        <nav>
            <ul>
                <li><a href="#">Главная</a></li>
                <li><a href="#">Стихи</a></li>
                <li><a href="#">Биография</a></li>
                <li><a href="#">Фотографии</a></li>
                <li><a href="#">История</a></li>
            </ul>
        </nav>
        
        <div id="middle">
            
            <div class="content">
              <hr>
               <h1>Учебная страница</h1>
<p>Короткий текст для проверки меню.</p>
</div>
            
        </div>
        
    </div>
    
</body>
</html>

Как видите – абсолютно стандартная разметка меню. В итоге мы получаем:

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

Стилизуем меню с помощью CSS


nav{

}

nav ul{
    position: relative;
    margin: 0; /* Сбрасываем отступы */
    padding: 0;
}

nav ul li{
    position: relative;
    list-style: none; /* Убираем маркеры списка */
    float: left; /* Выравниваем пункты по горизонтали */
}

nav ul li a:link,
nav ul li a:visited{
    display: block;
    padding: 4px 8px;

    font-family: "Tahoma", "Arial", "times new roman", sans-serif;
    text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.35);
    font-size: 14px;
    color: white;

    text-decoration: none; /*Убираем подчеркивание*/

    background: #4b91fc; /*Фон кнопки меню*/

    transition: all 0.2s ease; /*Параметры анимации при наведении*/
}


nav ul li a:hover,
nav ul li a:focus{

    background: white;
    color: #4b91fc;
    text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.1);
}

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

Единственно хочу добавить, главное что делает горизонтальное меню горизонтальным это строка float:left в контейнере nav>ul>li. Если не прописать это свойство то меню будет вертикальным.

В итоге у нас получается такой вид меню:

Открыть пример: menu_horizontal — Vian142

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

Выравниваем горизонтальное меню по центру

Общий принцип такой:

Сдвигаем содержимое списка ul с помощью свойств:

  • float:left;
  • left:50%;

Центрируем меню, сдвигая пункты li меню:

  • left: -50%;

Но есть одно НО. Когда мы прописали эти свойства, у нас появиться нижняя прокрутка. Хотя прокручивать по горизонтали казалось бы нечего, а наше горизонтальное меню корректно отображается. Это происходит из-за того, что наш список ul фактически сдвинут.

Для того, чтобы избежать этого ненужного недоразумения, пропишем родительскому контейнеру списка, а именно nav, свойство overflow: hidden. С помощью этого свойства мы скрываем всё содержимое, которое выходит за его границы.

Итог

Открыть пример: horizontal_center_menu — Vian142

Как видите, написать меню, для простого сайта, не так уж и сложно. А центрировать его еще легче. Надеюсь вам пригодиться данный урок.

Историческая техника

Вариант 2015 года показывает float и смещения на 50%. Он не единственный способ расположить меню горизонтально; современные проекты также используют flex и grid. В учебном коде длинное стихотворение заменено коротким текстом; это не меняет устройство меню.

Оцените материал
Загрузка...

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: