
Всем Привет! Сегодня, в этой статье, попытаюсь Вам рассказать о таком блоке, без которого не может обойтись практически ни один сайт. Таким блоком является меню, а именно, так как раздел у нас про адаптивную верстку то соответственно создаваться будет адаптивное меню. Адаптивное меню при отображении на малых устройствах будет приобретать вертикальный удобный читаемый вид, а при отображении на больших экранах будет иметь уже привычный горизонтальный вид.
И так, для начала создадим HTML разметку, в которой будет div блок с классом container, у которого указана максимальная ширина и задано расположение по центру. Внутри блока div есть тег <nav> </nav>, в котором и будет расположено наше меню.
<!DOCTYPE html> <html lang="en"> <head>
</head> <body>
</body> </html>
HTML разметка готова, приступим к оформлению таблицы стилей CSS нашего меню.
Для эффектов в меню, при наведении на наше меню, добавляем в стили следующие строки.
/*эфекты при наведении мыши на пункты меню*/
.nav li a:hover{
        color:#fff;/*меняется цвет ссылок*/
        background:#ABABAB;/*меняется цвет фона под ссылкой*/
}
                Теперь зададим стили для мобильного меню. Особо долго думать не будем, поэтому пропишем такие же стили, как и для меню на больших экранах.
/*стили для мобильного меню такие же, как и для общего меню*/
/*общий фон для нашего меню*/
#mobil-menu{
    background: #CECECE;
}
#mobil-menu{
        /*вместо display: block; ставим display: none;*/
    display: none;/*скрываем мобильное меню на больших экранах*/
        padding: 20px 25px;/*отступы*/
        font-weight: 900;/*жирный шрифт*/
        font-size: 16px;/*размер шрифта*/
        color: blue;/*цвет ссылок*/
        text-decoration:none;/*убираем подчеркивание ссылок*/
}
#mobil-menu:hover{
        color:#fff;
        background:#ABABAB;
}
                С меню для больших экранов мы закончили и смело можем приступать к менюшке на малых экранах. Для этого, нам понадобится медиа-запрос, в котором укажем, что при максимальном экране 768px будет отображаться мобильное меню, но при этом будет исчезать меню для больших экранов.
/*медиа-запрос*/
@media(max-width:768px){
        .nav{
                display:none;/*скрываем меню для больших экранов*/
        }
        #mobil-menu{
                display:block;/*показываем мобильное меню*/
        }
}
                И теперь, если мы возьмем правый нижний угол браузера и будем его сжимать до середины экрана то когда размер браузера станет 768px у нас появится надпись Мобильное меню. При нажатии на которое ничего не происходит. Для того что бы исправить это, нужно вставить Jquery код который и будет разворачивать и сворачивать наше меню. Сначала подключаем Jqueryбиблиотеку
<script src="http://Ваш сайт/js/ jquery-1.11.2.min.js"> </script>
После того как подключили библиотеку Jquery вставляем ниже написанный код.
<script type="text/javascript">
$(document).ready(function(){ 
        var touch       = $('#mobil-menu');
        var menu        = $('.nav');
 
        $(touch).on('click', function(e) {
                e.preventDefault();
                menu.slideToggle();
        });
        
        $(window).resize(function(){
                var w = $(window).width();
                if(w > 767 && menu.is(':hidden')) {
                        menu.removeAttr('style');
                }
        });
        
});
</script>
                Теперь после всех стараний при нажатии на ссылку Мобильное меню у нас выкатывается вниз меню. По виду оно у нас пока немного страшное, но сейчас мы его оформим и приведем в нужный вид. В медиа-запрос который уже создан выше, допишем следующие стили и в результате получим следующую картину.
/*медиа-запрос*/
@media (max-width:768px){
    #mobil-menu{
                display:block;/*показываем мобильное меню*/
        }
        .nav{
                display:none;/*скрываем меню для больших экранов*/
                margin: 0;/*обнуляем отступы*/
        padding: 0;/*обнуляем отступы*/
        background: #F5F5F5;
        }
        .nav li{
        display: block;/**/
        }
    /*сами стили для ссылок*/
        .nav li a{
                /*background: #cecece;*/
        color:blue;
        border-top: 1px solid #bebebe;/*рамка сверху*/
        border-left: 3px solid transparent;/*прозрачная рамка слева*/
    }
    /*для первого элемента li убираем рамку сверху*/
    .nav li:first-child а{
        border-top: none; /*отменяем рамку*/    
    }
    /*стили, используемые при наведении на мобильное меню*/
    .nav li a:hover{
        color:#333;
        background:#ebebeb;
        border-left: 3px solid #515572;
    }
}
                После того, как вы использовали весь код предоставленный выше, у Вас должно получится все как в демо-версии. Предоставленный код выше можно модифицировать под любые вкусы и задачи, получив уже то меню, которое будет подходить под Ваш дизайн. На этом, с простым адаптивным меню завершим.

 
                
 CSS
CSS