Самое простое вертикальное меню на CSS
Думаю, что это самое простое вертикальное меню с эффектом, которое полностью создано на CSS в синем оттенке, включая сам каркас. Просто просматривая интернет, мне попалась эта навигация, где немного оно не доработано, а точнее просто ошибка была. Так как оно сделано на одном классе, то веб мастеру не заставит сильного труда вывести навигацию в другой оттенок цвета, точнее под свой основной стиль на сайте. Теперь вы можете поставить его как по прямому назначению, так через этот дизайн вывести значительные запросы, которые к меню не относятся, а как пример, это актуальные новости или статьи.Меню навигации может сделать или сломать веб сайт, поэтому важно, чтобы вы относились к нему с уважением и придумывали его со страстью. Но что отличает главное меню от горизонтального. Да по сути не чем, главное, чтоб оно было заметное, ведь на нем будет самая актуальная информация под ссылки выставлена. Я считаю, что лучший способ узнать этот пример, поэтому здесь предоставлен удивительный список навигационных меню со всего интернета. Они варьируются от чрезвычайно простых до очень подробных, но главное в контексте, так как все они прекрасно вписываются в атмосферу и дизайн сайта.
Здесь проверял на работоспособность, где будет Demo страница для просмотра.
1. Синий вариант:
2. Зеленый вариант:
Приступаем к установке:
HTML
Код
<div>
<ul>
<li><a href=»/»>Партнерские программы</a></li>
<li><a href=»/»>Рейтинг парт. программ</a></li>
<li><a href=»/»>Бинарные опционы</a></li>
<li><a href=»/»>Вопросы и ответы</a></li>
<li><a href=»/»>Полезные SEO статьи</a></li>
<li><a href=»/»>SEO словар</a></li>
<li><a href=»/»>HTML-уроки и советы</a>
</li>
</ul>
<div>
CSS
Код
#manugcon-sedenamed {clear:left;float:left;width:205px;margin:0 0 0px 0;padding:0;font-size:0.9em
}
#manugcon-sedenamed ul{list-style:none;width:100%;margin:0 0 10px 0;padding:0;font-size:12px
}
#manugcon-sedenamed li{margin-bottom:4px
}
#manugcon-sedenamed li a {
font-weight: bold;
height: 20px;
text-decoration: none;
color: #215d92;
display: block;
padding: 5px 0 0 8px;
background: #fdfdfd;
border-left: 5px solid #2a77c3;
}
#manugcon-sedenamed li a:hover {
background: #2467a9;
color: #f9f6f6;
border-left: 5px solid #2a69c3;
}
Материал для создания оригинального шаблона с аналогичной навигацией.
Демонстрация
Интересное вертикальное меню на CSS3
Время чтения: 2 мин.Из этого урока Вы узнаете как создать красивое вертикальное меню с интересным эффектом.
Вы можете посмотреть пример, а также скачать архив с примером:
Посмотреть примерСкачать
Сейчас рассмотрим более подробно. Для начала в HTML вставим самый простой вид списка, которому в дальнейшем дадим свойства в 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 | <ul> <li> <a href="#"> <span>A</span> <div> <h3>Пункт 1</h3> </div> </a> </li> <li> <a href="#"> <span>B</span> <div> <h3>Пункт 2</h3> </div> </a> </li> <li> <a href="#"> <span>C</span> <div> <h3>Пункт 3</h3> </div> </a> </li> <li> <a href="#"> <span>D</span> <div> <h3>Пункт 4</h3> </div> </a> </li> <li> <a href="#"> <span>E</span> <div> <h3>Пункт 5</h3> </div> </a> </li> </ul> |
А сейчас пропишем необходимые свойства в 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 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 | .ca-menu { padding:0; margin:20px auto; width: 500px; } .ca-menu li { width: 500px; height: 100px; overflow: hidden; position: relative; display: block; background: #fff; -webkit-box-shadow: 1px 1px 2px rgba(0,0,0,0.2); -moz-box-shadow: 1px 1px 2px rgba(0,0,0,0.2); box-shadow: 1px 1px 2px rgba(0,0,0,0.2); margin-bottom: 4px; -webkit-transition: all 300ms linear; -moz-transition: all 300ms linear; -o-transition: all 300ms linear; -ms-transition: all 300ms linear; transition: all 300ms linear; } .ca-menu li:last-child { margin-bottom: 0px; } .ca-menu li a { text-align: left; width: 100%; height: 100%; display: block; color: #333; position: relative; } .ca-icon { font-family: 'WebSymbolsRegular', cursive; font-size: 20px; text-shadow: 0px 0px 1px #333; line-height: 90px; position: absolute; width: 90px; left: 20px; text-align: center; -webkit-transition: all 300ms linear; -moz-transition: all 300ms linear; -o-transition: all 300ms linear; -ms-transition: all 300ms linear; transition: all 300ms linear; } .ca-content { position: absolute; left: 120px; width: 370px; height: 60px; top: 20px; } .ca-main { font-size: 30px; -webkit-transition: all 300ms linear; -moz-transition: all 300ms linear; -o-transition: all 300ms linear; -ms-transition: all 300ms linear; transition: all 300ms linear; } .ca-sub { font-size: 14px; color: #666; -webkit-transition: all 300ms linear; -moz-transition: all 300ms linear; -o-transition: all 300ms linear; -ms-transition: all 300ms linear; transition: all 300ms linear; } .ca-menu li:hover { background: #e1f0fa; } .ca-menu li:hover .ca-icon { font-size: 40px; color: #259add; opacity: 0.8; text-shadow: 0px 0px 13px #fff; } .ca-menu li:hover .ca-main { opacity: 1; color:#2676ac; -webkit-animation: moveFromTop 300ms ease-in-out; -moz-animation: moveFromTop 300ms ease-in-out; -ms-animation: moveFromTop 300ms ease-in-out; } .ca-menu li:hover .ca-sub { opacity: 1; -webkit-animation: moveFromBottom 300ms ease-in-out; -moz-animation: moveFromBottom 300ms ease-in-out; -ms-animation: moveFromBottom 300ms ease-in-out; } @-webkit-keyframes moveFromBottom { from { opacity: 0; -webkit-transform: translateY(200%); } to { opacity: 1; -webkit-transform: translateY(0%); } } @-moz-keyframes moveFromBottom { from { opacity: 0; -moz-transform: translateY(200%); } to { opacity: 1; -moz-transform: translateY(0%); } } @-ms-keyframes moveFromBottom { from { opacity: 0; -ms-transform: translateY(200%); } to { opacity: 1; -ms-transform: translateY(0%); } } @-webkit-keyframes moveFromTop { from { opacity: 0; -webkit-transform: translateY(-200%); } to { opacity: 1; -webkit-transform: translateY(0%); } } @-moz-keyframes moveFromTop { from { opacity: 0; -moz-transform: translateY(-200%); } to { opacity: 1; -moz-transform: translateY(0%); } } @-ms-keyframes moveFromTop { from { opacity: 0; -ms-transform: translateY(-200%); } to { opacity: 1; -ms-transform: translateY(0%); } } |
Кода действительно много, но это стоит того эффекта, который в итоге получается! 🙂
Успехов!
|
| ||||||||||||
|
Создаем вертикальное меню на CSS – Zencoder
Продолжаем изучение CSS и сегодня приступим к построению вертикального меню.
Такие меню очень популярны и без них не обходится каждый второй сайт. Статей по созданию подобной навигации написано немало, но меня данный факт волнует мало. Моя задача — разобраться в принципе построения подобного меню и возможность сделать его самому, на коленках за пару минут. В действительности все просто, даже очень просто.
Созданное в этой статье вертикальное меню будет далеко по своим внешним эстетическим данным от совершенства. Но это и неважно — важен сам принцип, механизм построения и функционирования подобной навигации. А всякие фантики-бантики можно навесить всегда, было бы желание.
Механизм действия и построения такого меню основан на одном единственном CSS-свойстве — , а точнее на его значениях —
и
.
В этой статье будет создаваться простое вертикальное меню, в котором подменю размещается сбоку от основного меню. Существует более сложный вариант вертикального меню, в котором подменю размещается внутри основного.
Такая навигация называется
и принцип его создания будет рассмотрен позже.1
меню-аккордеон
C чего же мы начнем? С построения обычного маркированного списка, пунктами которого будут ссылки. Списку зададим класс с именем , так как он нам понадобиться в дальнейшем:
<ul>
<li>
<a href="#">Punkt 1</a>
</li>
<li>
<a href="#">Punkt 2</a>
</li>
<li>
<a href="#">Punkt 3</a>
</li>
<li>
<a href="#">Punkt 4</a>
</li>
<li>
<a href="#">Punkt 5</a>
</li>
</ul>
Созданное только что меню будет внешним, а внутри него (точнее внутри его пунктов) мы поместим еще одно меню. Получиться одно меню, вложенное в другое (помните уроки HTML?).
То есть, у нас есть пять пунктов внешнего меню — вот мы и вложим в каждый из них еще одно меню, перед ссылкой. Ссылка будет исполнять роль переключателя, который будет переводить значение свойства из none в
и наоборот.
В итоге получиться пять подменю, для каждого из которых мы пропишем один класс — . Этот класс нам также потребуется в дальнейшем:
<ul>
<li>
<a href="#">Punkt 1</a>
<ul>
<li>
<a href="#">Punkt 1-1</a>
</li>
<li>
<a href="#">Punkt 1-2</a>
</li>
<li>
<a href="#">Punkt 1-3</a>
</li>
</ul>
</li>
<li>
<a href="#">Punkt 2</a>
<ul>
<li>
<a href="#">Punkt 2-1</a>
</li>
<li>
<a href="#">Punkt 2-2</a>
</li>
<li>
<a href="#">Punkt 2-3</a>
</li>
</ul>
</li>
<li>
<a href="#">Punkt 3</a>
<ul>
<li>
<a href="#">Punkt 3-1</a>
</li>
<li>
<a href="#">Punkt 3-2</a>
</li>
<li>
<a href="#">Punkt 3-3</a>
</li>
</ul>
</li>
<li>
<a href="#">Punkt 4</a>
<ul>
<li>
<a href="#">Punkt 4-1</a>
</li>
<li>
<a href="#">Punkt 4-2</a>
</li>
<li>
<a href="#">Punkt 4-3</a>
</li>
</ul>
</li>
<li>
<a href="#">Punkt 5</a>
<ul>
<li>
<a href="#">Punkt 5-1</a>
</li>
<li>
<a href="#">Punkt 5-2</a>
</li>
<li>
<a href="#">Punkt 5-3</a>
</li>
</ul>
</li>
</ul>
Все — каркас будущего вертикального меню готов и больше мы его трогать не будем. Остальные действия будем выполнять только с помощью CSS. Для начала создадим базовые стили, чтобы придать нашему меню хоть какой-то вид:
*{
margin: 0;
padding: 0;
}
a{
text-decoration: none;
}
ul{
list-style-type: none;
}
.menu{
margin: 30px 0 0 30px;
width: 100px;
}
Здесь мы обнуляем и
для всех элементов, в том числе и
; убираем маркер у пунктов меню; убираем подчеркивание у ссылок.
Для внешнего списка с классом menu задаем отступ сверху и слева, чтобы не прилипал к границам окна браузера и устанавливаем фиксированную ширину в .
Дальше форматируем пункты меню:
.menu li{
position: relative;
line-height: 20px;
background-color: #ccc;
margin-bottom: 1px;
}
Ставим высоту каждого элемента равной 20px и выравниваем текст внутри него по центру вертикали; задаем фоновый цвет для них же, чтобы можно было различать каждый из пунктов на фоне окна браузера; делаем нижний
в 1px, чтобы элементы
не сливались между собой и были похожи на пункты меню.
Последний шаг — устанавливаем для относительное позиционирование, так как в дальнейшем будем размещать подменю относительно этого элемента.
Далее чисто косметические правила для ссылок, находящихся внутри внешнего меню — размер шрифта (кегль) и цвет текста:
.menu li a{
font-size: 16px;
color: #000;
}
Теперь приступаем к самому интересному — стилизации подменю. Для начала зададим его ширину (пусть будет чуть меньше ширины внешнего списка):
.sub-menu{
width: 90px;
}
Затем установим для подменю абсолютное позиционирование для того, чтобы сместить его вправо на значение, равное ширине внешнего списка и “прилепить” кверху каждого из элементов .
И самое главное — скроем его отображение в браузере через правило . В результате код будет выглядеть следующим образом:
.sub-menu{
width: 90px;
position: absolute;
left: 100px;
top: 0;
display: none;
}
Немного стилизуем пункты меню и ссылки в подменю. Для каждого пункта подменю устанавливаем цвет фона, чтобы отличать подменю от основного меню. И цвет ссылок по той же причине:
.sub-menu li{
background-color: #aaa;
}
.sub-menu li a{
color: #fff;
}
Заключительный код, который заставляет наше меню работать именно так, как задумано. То есть, этим мы говорим браузеру присвоить свойству значение
при наведении мыши на ссылку во внешнем списке:
.menu li:hover .sub-menu{
display: block;
}
В результате подменю отобразиться (браузер сгенерирует его). Изначально в коде было прописано для него . То есть, для браузера такого подменю не существовало и в DOM-модели документа элемент
с классом
отсутствовал.
Так как этому подменю задано абсолютное позиционирование со смещением вправо на и вверх на
, то оно поместиться точно справа вверху от своего родителя — пункта меню внешнего списка.
В принципе, на этом уже все сказано. Основной принцип вертикального меню показан и создан. Остальное — уже дело техники, если нужно придать ему нужный вид. На закуску пример нашего меню в обычном состоянии:
И меню, когда наведена мышка на один из пунктов меню и справа появляется подменю, соответствующее этому пункту:
На этом все.
css
Делаем простое вертикальное меню
Меню – один из главных элементов на веб-странице. Практически на каждом сайте используется меню, хотя сегодня они настолько разнообразны, что некоторые даже сложно такими назвать. Сегодня мы попробуем сделать простое, но практичное вертикальное меню, используя только CSS и HTML.
HTML
Разметка для меню очень проста – вложенный список.
<div> <ul> <li><a href="#">HTML</a></li> <li><a href="#">CSS</a></li> <li><a href="#">jQuery</a></li> <li><a href="#">PHP</a></li> <li><a href="#"> Видео курс </a></li> </ul> </div>
СSS
Дальше идут наши стили. Я постарался добавить немного комментариев в них, и даже не знаю, что еще сказать тут. Все просто – настраиваем нужный нам вид меню, а потом с помощью селектора :hover подсвечуем наведенный элемент.
Обратите внимание: для эффекта округленных углов я использовал CSS3 эффект, который генерирует сайт //css3maker.com
/* Убираем отступы */ /* Убираем отступы */ *{ margin:0; padding:0; } /* Задаем ширину меню */ #menu{ width:210px; margin:15px; } /* Стили для наших пунктов меню */ #menu ul{ list-style:none; } #menu li{ list-style:none; display:block; line-height:32px; height:32px; margin:7px 0; width:206px; } #menu li a{ display:block; height:33px; text-transform:uppercase; font-size:16px; font-weight:bold; line-height:32px; padding:0 0 0 25px; text-decoration:none; color:#006A35; background: #95DF8E; border:solid 1px #006A35; -moz-border-radius:10px; -webkit-border-radius:10px; border-radius:10px; } /* Подсветка наведденого пункта */ #menu li a:hover{ background: #35C835; color:#fff; }
Готово!
Наше простое вертикальное меню готово. Дальше все зависит от вашей фантазии и потребностей. Часто бывает нужным добавить в такое меню подпункты, что делает его “аккордеон” меню. Читайте наши следующие статьи, что бы подробнее узнать о нем.
Вертикальное раздвижное меню с описанием на CSS3
Всем вам, дорогие друзья, хочется сделать оригинальный сайт, чтобы было креативно все оформлено, кроме этого бросалось в глаза необходимая информация. Для удобства, веб-мастера, разрабатывают вспомогательную навигацию, к примеру, вертикальный аккордеон с содержанием. Такой вариант станет отличным решением для сайта в темных тонах, и не только. Кроме этого мы используем градиенты, что весьма ускорит загрузку сайта. И так, давайте посмотрим, что у нас получилось.
Много различным бесплатных шаблонов вы можете найти на сайте наших партнеров, также имеются и премиум шаблоны с круглосуточной техподдержкой и помощью в настройке:
Данное меню было разработано моим другом Глебом Кавраским. Давайте же приступим к рассмотрению урока.
Шаг 1. HTML
Для начала нам необходимо подключить библиотеку jquery-latest:
<script type=»text/javascript» src=»/jquery-latest.js»></script> |
Далее нам надо построить саму разметку, для каждого основного контейнера с содержанием мы будем использовать классы «button_podtext».
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 | <div> <ul> <li><div>CSS3<br> <span>Основные возможности</span></div> <ul> <li><a href=»#»>Ссылка 1</a></li> <li><a href=»#»>Ссылка 2</a></li> </ul> </li> <li><div>HTML5<br> <span>Продолжение или новая платформа?</span></div> <ul> <li><a href=»#»>Ссылка 1</a></li> <li><a href=»#»>Ссылка 2</a></li> <li><a href=»#»>Ссылка 3</a></li> <li><a href=»#»>Ссылка 4</a></li> </ul> </li> <li><div>WordPress<br> <span>Новости в мире CMS</span></div> <ul> <li><a href=»#»>Ссылка 1</a></li> <li><a href=»#»>Ссылка 2</a></li> <li><a href=»#»>Ссылка 3</a></li> </ul> <li><div>Основное<br> <span>Блог, Тесты, Форум</span></div> <ul> <li><a href=»#»>Ссылка 1</a></li> <li><a href=»#»>Ссылка 2</a></li> <li><a href=»#»>Ссылка 3</a></li> </ul> </li> </ul> <div><i>Разработано Глебом Кавраским</i></div> |
C разметкой разобрались, переходим к следующему шагу.
Шаг 2. 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 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 | #menu_pop { margin: 120px auto ; width: 280px; background: url(‘wood.jpg’); border-radius: 6px; padding: 7px; box-shadow: 0px 1px 5px #000; }
#accordion { list-style: none; padding: 0px; margin: 0px; }
#accordion .button_podtext { font-size: 9px; color: #b1b1b1; }
#accordion div { display: block; cursor: pointer; text-decoration: none; display: block; padding: 8px 0px 8px 11px; background: #000; color: #fff; font-size: 12px; font-family: tahoma; background: url(‘bg.png’) 0px 0px; text-shadow: 0px 1px 0px rgba( 0, 0, 0, 0.6); list-style: circle; }
#accordion div:hover { background: url(‘bg.png’) 0px -44px; }
.first { border-radius: 3px 3px 0px 0px; }
#accordion ul a { color: #777; }
#accordion ul { list-style: none; padding: 5px; font-size: 10px; font-family: Tahoma; background: #1a1a1a; box-shadow: inset 0px 3px 6px rgba( 0, 0, 0, 0.7); display: none; }
#accordion ul li { font-weight: normal; cursor: auto; padding: 3px 7px; }
#accordion a { text-decoration: none; }
#accordion a:hover { text-decoration: underline; }
#menu_pop .menu_bottom { display: block; padding: 3px 6px 3px; background: #000; color: #fff; font-size: 9px; border-radius: 0px 0px 3px 3px; font-family: georgia; background: url(‘bg_bottom.png’) 0px 0px; text-align: right; text-shadow: 0px 1px 0px rgba( 0, 0, 0, 0.6); } |
Мы используем тени для придания меню небольшой объемности. Кроме это позволит создать иллюзию вдавленных кнопок. Переходим к следующему шагу.
Шаг 3. jQuery
Так как мы используем плагин jQuery, нам необходимо его вызвать, вызов плагина нам необходимо инициализировать в основном документе, для работоспособности на остальных страницах.
//Определяем по нажатию на какой элемент должны открыватся подменю $(«#accordion > li > div»).click(function(){
if(== $(this).next().is(‘:visible’)) { $(‘#accordion ul’).slideUp(280); } $(this).next().slideToggle(280); });
$(‘#accordion ul:eq(0)’).show(); |
Кроме этого вы можете указать в данном фрагменте кода скорость открытия и закрытия подпунктов. По умолчанию она установления на значении 280мс.