Горизонтальное меню с CSS — CodeRoad
Я пытаюсь сделать горизонтальное меню с CSS, но наткнулся на препятствие. То, что я пытаюсь сделать, — это сделать так, чтобы первый блок ссылок bblock и последний блок ссылок имели закругленные углы с использованием css3. Мне удалось составить меню, но я не могу добиться желаемого эффекта.
Я попробовал стилизовать эти отдельные элементы списка, но эффект не проявился. Я прикрепляю свои css и html, чтобы кто-нибудь посмотрел. Любые указатели будут оценены по достоинству
<ul>
<li><a href="#">Home</a></li>
<li><a href="#">About Us</a></li>
<li><a href="#">Services</a></li>
<li><a href="#">Events</a></li>
<li><a href="#">Gallery</a></li>
<li><a href="#">Testimonials</a></li>
<li><a href="#">Contact</a></li>
</ul>
#nav {
margin-left: 9px;
padding:0;
margin-top: 30px;
margin-bottom: 10px;
list-style:none;
clear:both ;
}
#nav li {
float:left;
display:block;
width:139px;
position:relative;
z-index:500;
margin:0 0;
border-left: 1px solid #5d564e;
}
#nav li a {
display:block;
padding:8px 5px 0 5px;
font-weight:500;
height:50px;
text-decoration:none;
background: #333;
color: #fff;
text-align:center;
border-left: 1px solid #000;
}
#nav li a:hover {
color:#fff;
background: #3e7e99;
text-decoration:underline;
}
#nav a. selected {color:#f00;}
html
css Поделиться
3 ответа
- Горизонтальное меню Субнавигации с материалом Angular 2+
Я пытаюсь создать горизонтальное меню субнавигации, подобное этому , используя Angular Material . HTML и CSS на веб-сайте достаточно просты, но есть ли best practice способ сделать это с помощью фреймворка Angular Material?
- jsf горизонтальное меню facelet
я пытаюсь сделать горизонтальное меню, используя JSF, Trinidad и facelets, меню создается так: <f:facet name=navigation2> <tr:navigationTree inlineStyle=display: inline-block; background: white; var=item value=#{menuModel.model}> <f:facet name=nodeStamp>…
2
Вот jsfiddle , использующий css3 для закругления внешних углов первого и последнего элементов списка — если я правильно понимаю, что вы пытаетесь сделать.
Одна вещь, которую я бы тоже добавил, заключается в том, что предпочтительнее переместить ваш css из встроенного с элементами раздела в раздел <style> или даже лучше в файл css.
Поделиться kinakuta
0
Вы должны установить overflow:hidden;
для ul
.
http://jsfiddle.net/KKPmL/1/
#nav{
border-radius:10px;
-moz-border-radius:10px;
-webkit-border-radius:10px;
overflow:hidden;
}
Это не работает, если экран недостаточно велик для отображения навигации в одной строке.
Второй метод:
http://jsfiddle.net/KKPmL/2/
#nav li:first-child a{ border-top-left-radius:10px; -moz-border-top-left-radius:10px; -webkit-border-top-left-radius:10px; border-bottom-left-radius:10px; -moz-border-bottom-left-radius:10px; -webkit-border-bottom-left-radius:10px; } #nav li:last-child a{ border-top-right-radius:10px; -moz-border-top-right-radius:10px; -webkit-border-top-right-radius:10px; border-bottom-right-radius:10px; -moz-border-bottom-right-radius:10px; -webkit-border-bottom-right-radius:10px; }
Поделиться Alex 08 марта 2012 в 20:32
0
px
не является допустимым значением, вам нужно 0px
или просто 0
Также лучше использовать классы first
и last
li
Посмотрите здесь для примера
http://jsfiddle. net/WYuNR/
Поделиться yunzen 08 марта 2012 в 20:37
- Горизонтальное ценовое меню
Моя цель-создать горизонтальное ценовое меню с тире между товаром и ценой, и я хотел бы, чтобы оно было отзывчивым и хорошо выглядело. Я хочу сделать это в html/css, и я могу жестко закодировать его, но он не будет таким отзывчивым. Item —————- $180
- Отзывчивое горизонтальное меню без jQuery
Похожие вопросы:
CSS горизонтальное выравнивание меню в ячейке
У меня есть горизонтальное меню CSS в ячейке таблицы. Я установил выравнивание ячейки на align=right .., и меню CSS находится в этой ячейке, но оно не выровнено по правому краю… смотрите код HERE…
css — горизонтальное меню — фон-цвет
У меня есть горизонтальное меню. Я хочу, чтобы вокруг меню была граница (не вся строка, а только пространство меню). Когда я ставлю границу на ul, она охватывает всю строку, когда я ставлю границу…
Скрыть горизонтальное переполнение меню CSS
У меня есть горизонтальное выпадающее меню CSS в http:/ / www.stevemoorecpa.dreamhosters.com / Моя проблема в том, что ширина меню выходит за пределы оболочки сайта, и я не могу заставить его…
Горизонтальное меню Субнавигации с материалом Angular 2+
Я пытаюсь создать горизонтальное меню субнавигации, подобное этому , используя Angular Material . HTML и CSS на веб-сайте достаточно просты, но есть ли best practice способ сделать это с помощью…
jsf горизонтальное меню facelet
я пытаюсь сделать горизонтальное меню, используя JSF, Trinidad и facelets, меню создается так: <f:facet name=navigation2> <tr:navigationTree inlineStyle=display: inline-block; background:. ..
Горизонтальное ценовое меню
Моя цель-создать горизонтальное ценовое меню с тире между товаром и ценой, и я хотел бы, чтобы оно было отзывчивым и хорошо выглядело. Я хочу сделать это в html/css, и я могу жестко закодировать…
Отзывчивое горизонтальное меню без jQuery
Я ищу отзывчивое горизонтальное меню, которое динамически сворачивает элементы, которые не помещаются в раздел more меню. Довольно точно, как в этом примере:…
Горизонтальное выпадающее меню CSS
Я пытаюсь сделать горизонтальное выпадающее меню в CSS. Однако он появляется вертикально: Я хочу, чтобы два самых верхних пункта меню были горизонтальными. Что я могу сделать, кроме как сделать…
Верхнее горизонтальное меню Prestashop 1.6
Недавно я открыл небольшой интернет-магазин, и у меня возникла проблема с верхним горизонтальным меню в Prestashop 1.6. Когда я активирую верхнее горизонтальное меню, оно не горизонтальное, а.
Горизонтальное меню только с изображением Css
Я новичок в Asp.net и CSS . Мне нужно показать только горизонтальное меню Изображения, как это image 1 image 2 image 3 image 4 Поэтому я попробовал вот так CSS #UlIcon { height: 100%;…
Создаем горизонтальное выпадающее меню на CSS – Zencoder
В предыдущей статье “Создаем вертикальное меню на CSS” был освещен вопрос построения вертикального меню с подменю.
В этой статье будет логическое продолжение этого вопроса и мы научимся делать горизонтальное меню с выпадающим подменю. Принцип построение и функционирования такой навигации очень похож на вертикальное меню, с той лишь разницей, что она будет располагаться горизонтально. В основе заложен тот же самый принцип — свойство
и
.При построении горизонтального меню нужно быть внимательным с принципом специфичности CSS, то есть — с вложенностью и каскадностью правил. Хорошим подспорьем в этом вопросе является SASS (SCSS), благодаря которому исключаются ошибки при соблюдении каскадности и наследовании свойств.
Код, написанный на SASS (SCSS) короче и логически читается проще, чем CSS. Поэтому, рекомендую изучить этот вопрос в статьях “SASS (SCSS) в картинках — Часть 1”, “SASS (SCSS) в картинках — Часть 2”.
Мы же приступим к созданию горизонтального меню с подменю “на коленках”. Почему говорю так? Дело в том, что существует масса готовых примеров и кода, а также генераторов различных меню. Но они неинтересны — нам нужно разобраться в принципе построения и возможности самому написать такую навигацию. Как обычно, начинаем с каркаса меню, выполненного на HTML:
<ul>
<li>
<a href="#">Link_1</a>
<ul>
<li>
<a href="#">Link_1-1</a>
</li>
<li>
<a href="#">Link_1-2</a>
</li>
<li>
<a href="#">Link_1-3</a>
</li>
<li>
<a href="#">Link_1-4</a>
</li>
</ul>
</li>
<li>
<a href="#">Link_2</a>
</li>
<li>
<a href="#">Link_3</a>
<ul>
<li>
<a href="#">Link_3-1</a>
</li>
<li>
<a href="#">Link_3-2</a>
</li>
<li>
<a href="#">Link_3-3</a>
</li>
</ul>
</li>
<li>
<a href="#">Link_4</a>
</li>
<li>
<a href="#">Link_5</a>
<ul>
<li>
<a href="#">Link_5-1</a>
</li>
<li>
<a href="#">Link_5-2</a>
</li>
<li>
<a href="#">Link_5-3</a>
</li>
<li>
<a href="#">Link_5-4</a>
</li>
<li>
<a href="#">Link_5-5</a>
</li>
</ul>
</li>
</ul>
Структура подобного меню абсолютно одинакова со структурой вертикального меню. Также имеется внешний маркированный список с пунктами в виде ссылок, перед некоторыми из которых добавлены дополнительные подменю, выполненные также в виде маркированного списка.
Различие между внешним и внутренним меню в классах, с помощью которых они будут видоизменяться. Помимо этого вы можете заметить, что у некоторых ссылок есть класс , но о нем мы поговорим позже.
Приступим к оформлению нашего меню с помощью CSS. Сразу оговорюсь, что примеры кода, представленного здесь, написаны на SASS (SCSS). Начнем с того, что расположим навигацию горизонтально:
.hormenu{
margin: 50px 0 0 50px;
overflow: hidden;
li{
float: left;
margin-left: 1px;
&:first-child{
margin-left: 0;
}
Думаю, ничего загадочного в этой части кода нет. Делаем отступ для меню и располагаем элементы внутри него горизонтально с помощью свойства
. Предотвращаем схлопывание (
) блока-родителя
, прописав для него
.
Чтобы пункты меню были легко различимы, сделаем промежуток между ними с помощью левого в 1px. И для аккуратности уберем левый
у первого элемента
.
Далее оформляем ссылки внутри пунктов . Делаем ссылки блочными, чтобы кликабельной была вся область пункта навигации и задаем для нее высоту. Также указываем интерлиньяж, чтобы выровнять текст по вертикали и
для выравнивания по горизонтали. Цвет фона и цвет текста — как обычно.
Помимо этого, делаем ссылки с относительным позиционированием — оно нам пригодиться позже, когда будем отрисовывать треугольники. В этом коде стоит обратить внимание только на один момент — ширина элемента задается жестко. Это делается для того, чтобы основное меню не дергалось вправо-влево.
Возможна ситуация, когда пункт подменю по ширине будет больше, чем пункт основного меню, и тогда ребенок “растянет” своего родителя.
При скрытии же подменю пункты основного меню будут “сжиматься”, уменьшая ширину до своей собственной. Вот для этой цели и применяется явное задание ширины элемента :
a{
display: block;
line-height: 25px;
height: 25px;
width: 130px;
text-align: center;
background-color: #ccc;
color: #ccc - #555;
position: relative;
}
Продолжим стилизацию нашей навигации и займемся подменю, а точнее — его подпунктами . Уберем у этих элементов плавание влево
и левый
, чтобы они не наследовали эти свойства. Убираем плавание, чтобы элементы
расположились вертикально, а левый
— убрать “лесенку”:
li{
float: none;
margin: 0 0 1px 0;
Стилизуем ссылки пунктов подменю. Делаем фоновую заливку чуть светлее, чтобы отличалась от основного меню, а текст — чуть темнее по той же причине. Ну и анимация пунктов при наведении курсора мыши:
a{
background-color: #ccc + #111;
color: #ccc - #333;
&:hover{
background-color: #ccc + #222;
}
}
Теперь самое главное — сделаем подпункты меню выпадающими. Для этого сначала спрячем его, убрав из DOM-модели HTML-документа с помощью значения свойства :
.sub-hormenu{
display: none;
… а затем будем показывать его только при наведении курсора мыши на пункт меню. Код здесь может показаться немного непонятным, но знак амперсанда означает тоже, что и класс :
&:hover .sub-hormenu{
display: block;
}
Все — наше меню создано и работает. Давайте немного приукрасив его, придав функциональности. А именно — на данный момент визуально невозможно различить, у какого пункта основного меню есть подменю, а у какого — нет. Для этого “продрисуем” к нужным пунктам небольшой треугольник с помощью псевдо-класса .
Как раз здесь нам и понадобиться относительное позиционирование для ссылок, о котором говорилось ранее. Создание стрелки “поручим” отдельному классу , который будем “вешать” только на нужные нам ссылки:
. arrow:after{
content: '';
position: absolute;
top: 50%;
left: 80%;
width: 0;
height: 0;
border-top: 4px solid #ccc - 666;
border-left: 4px solid transparent;
border-right: 4px solid transparent;
margin-top: -2px;
}
Вот, в принципе, и все. Основная задача выполнена и горизонтальное меню с выпадающим подменю у нас работает. Конечно, можно озадачиться целью “окрасить” активный пункт основного меню в тот же цвет, что и у подменю. Но эта проблема не входит в рассмотрение поставленной нами задачи. Ниже представлен полный код правил CSS (SCSS) для нашего меню:
@import "compass/reset";
a{
text-decoration: none;
}
.arrow:after{
content: '';
position: absolute;
top: 50%;
left: 80%;
width: 0;
height: 0;
border-top: 4px solid #ccc - 666;
border-left: 4px solid transparent;
border-right: 4px solid transparent;
margin-top: -2px;
}
.hormenu{
margin: 50px 0 0 50px;
overflow: hidden;
li{
float: left;
margin-left: 1px;
&:first-child{
margin-left: 0;
}
&:hover . sub-hormenu{
display: block;
}
.sub-hormenu{
display: none;
li{
float: none;
margin: 0 0 1px 0;
a{
background-color: #ccc + #111;
color: #ccc - #333;
&:hover{
background-color: #ccc + #222;
}
&:after{
content: none;
}
}
}
}
a{
display: block;
line-height: 25px;
height: 25px;
width: 130px;
text-align: center;
background-color: #ccc;
color: #ccc - #555;
position: relative;
}
}
}
… и то, как оно выглядит:
На этом все.
cssdropdown menu
Горизонтальное резиновое меню | Vavik96
Рассмотрим популярный быстрый способ создания горизонтального резинового меню. Нам не понадобятся фиксированные или процентные размеры пунктов, меню будет тянуться во всю ширину контейнера, в котором оно находится.
See the Pen Горизонтальное резиновое меню by vavik (@vavik96) on CodePen.
В качестве структуры для меню используем обычный список ul с элементами li. Кроме того, вместо ul и li можно использовать обычные блоки div, результат будет такой же.
HTML
<div> <ul> <li><a href="#">Main</a> </li> <li><a href="#">About company</a> </li> <li><a href="#">Development</a> </li> <li><a href="#">Products</a> </li> <li><a href="#">Store</a> </li> <li><a href="#">Contacts</a> </li> </ul> </div>
Для того, чтобы меню тянулось на всю ширину страницы, пишем для ul правила display: table; width: 100%, обнуляем все отступы margin и padding. Для пунктов li указываем display: table-cell, а также float: none (в случае если для элементов уже прописано правило float: left, которое не позволит растянуть меню на всю ширину родительского контейнера). Ссылки внутри li объявляются блоками для удобства их дальнейшего «раскрашивания»: ссылка растянется на всю ширину элемента li. Дописываем различные правила для текста, фона и необходимые отступы. Важное замечание: данный способ не будет работать в IE7 и ниже.
CSS
.menu { display: table; width: 100%; margin: 0; padding: 0; } .menu li { display: table-cell; float: none; } .menu li a { display: block; padding: 8px 15px; background: #2767A0; font-family: Tahoma; font-size: 12px; color: #fff; text-decoration: none; text-align: center; text-transform: uppercase; } .menu li a:hover { background: #528CBF; transition: all 0.3s ease; -webkit-transition: all 0.3s ease; -moz-transition: all 0. 3s ease; -o-transition: all 0.3s ease; }
Источник
Подборка различных менюшек. 1 часть — горизонтальные меню | «NARDOdesign» — школа веб-дизайна | Разработка и создание сайтов | Графический веб-дизайн | Фирменный стиль | Как создавать сайты | Инструкции по созданию сайтов
Если Вас интересуют качественные и новые HTML и CSS темплейты, уникальные и свежие JavaScript решения, актуальные уроки по фотошопу и графическому дизайну, рекомендации и примеры уроков по созданию красивых и оригинальных сайтов, или Вы хотите быть в курсе последних новинок и трендов в веб разработке? Тогда Вы попали именно туда! Также не останутся в стороне вопросы связанные с продвижением сайта в поисковиках – СЕО и оптимизация. Рассмотрим основные моменты качественного наполнения сайта – копирайтинг , веб-райтинг, нейминг итд. Надеюсь у нас Вам понравиться 😉
Театр начинается с вешалки – так принято говорить. Для
большинства пользователей в сети мнение
об удобности и юзабилити сайта завязано не только на его дизайне и внешней
привлекательности. Большое значение имеет удобная навигация. Очень часто в
погоне за стилем молодые и не очень веб-дизайнеры пытаются изобрести велосипед создавая громоздкие и несуразные менюшки, которые может быть, и несут эстетику в
массы, но совсем не предназначены для быстрого и понятного путешествия по сайту.
В итоге клиент такого сайта зачастую не может с первого раза найти то, что
именно ему нужно, это ведет к раздражению и не восприятию сайта – а ведь
изначально задачу планировали ровно противоположную. Поэтому мой девиз – не
перемудри! Старайтесь меню делать такое, чтобы клиент с первого взгляда мог определиться в какой раздел ему
нужно. Соблюдайте логику при создании
разделов и по возможности создавайте
меньше вложенных списков – среднестатистический юзер не ищет головоломки в сети
и хочет видеть и понимать все и сразу.
Предлагаю Вашему вниманию подборку различных менюшек, глядя на них, возможно Вы
почерпнете что-то полезное для Вас.
Мега подборка различных менюшек на любой вкус.
Часть первая – горизонтальные меню.
Сетка аккордеон на JQuery
Большая сетка аккордеон с применением Query JavaScript. Удобно для больших мега-меню. Выделенный пункт увеличивается как по горизонтали так и по вертикали.
Демо | Скачать
Простое меню с большими элементами
Простое меню с применением jQuery. Полноценно работает в Safari и Chrome.
Демо | Скачать
Меню в стиле гаражных дверей на jQuery
Простая менюшка с эффектом открытия гаражных ворот при наведении
Демо | Скачать
JavaScript выпадающего меню в несколько уровней
Демо | Скачать
Огромное горизонтальное меню на основе javascript #1
Демо | Скачать
Огромное горизонтальное меню на основе javascript #2
Демо | Скачать
Огромное горизонтальное меню на основе javascript #3
Демо | Скачать
Горизонтальное двухуровневое меню
Демо | Скачать
Анимационное меню на JQuery
Демо | Скачать
Затухающее меню с JQuery
Красивое простое меню с эффектом затухания.
Демо | Скачать
Большое выпадающее меню в верху сайта
Демо | Скачать
Apple style меню
Демо | Скачать
Выпадающее Apple style меню Nav с HTML5, CSS3 и JQuery
Демо | Скачать
Минималистичное мультиуровневое меню
Демо | Скачать
Магическая линия на JQuery
Меню с интерсным эффектом задержки фона или подчеркивания. Базируется на JQuery.
Демо | Скачать
Минималистичное jQuery меню
Минималистичное меню с выпадающим списком, работает даже в старых версиях броузеров (IE 6)
Демо | Скачать
Интересное вертикальное меню
Демо | Скачать
Необычное раздвижное меню на Mootools
Демо | Скачать
Интересное горизонтальное разъезжающееся меню
Демо | Скачать
Выпадающее jQuery меню
Демо | Скачать
Горизонтальное выпадающее меню со строкой поиска
Демо | Скачать
Полнофункциональное меню с применением jQuery
Демо | Скачать
Крутая анимация при помощи CSS и JQuery
Демо | Скачать
Анимированные меню при помощи jQuery
Демо | Скачать
Размывающееся CSS меню
Демо
Элегантное меню на CSS
Демо | Скачать
Большое меню на CSS
Демо | Скачать
Анимированное меню с применением CSS
Демо
CSS выпадающее мега-меню
Демо | Скачать
Статичное меню на jQuery
Демо | Скачать
Очень стильное и красивое меню с применением jQuery
Демо | Скачать
Стильное анимированное меню
Демо | Скачать
Красивое горизонтальное выезжающее меню
Демо | Скачать
Стильное меню на jQuery с применением слайдов
Демо | Скачать
Элегантное меню
Демо | Скачать
Меню на основе CSS3
Демо
Стильное меню на основе CSS
Демо
Простое меню на JavaScript
Демо
Стильное меню-аккордеон с картинками
Демо | Скачать
Меню в виде перекрывающихся вкладок
Демо | Скачать
Горизонтальное спрайт меню
Демо | Скачать
CSS выпадающее меню
Демо | Скачать
Минималистичное CSS меню с выпадающим списком
Демо
CSS меню с анимацией
Демо | Скачать
Стильная навигация при помощи CSS3
Демо | Скачать
Необычное горизонтальное меню
Демо | Скачать
Стильное выпадающее меню с применением jQuery а также CSS
Демо | Скачать
Горизонтальное меню с выпадающими списками
Демо | Скачать
Стильное горизонтальное меню на основе CSS
Демо | Скачать
Исчезаюшее меню с jQuery
Демо
Please enable JavaScript to view the comments powered by Disqus. blog comments powered by Disqus
Как сделать горизонтальное меню в Joomla 2.5
В дистрибутиве Joomla 2.5 не предусмотрено горизонтальное расположение меню (в отличае от дистрибутива Joomla 1.5). Но у многих вебмастеров возникает желание или необходимость установить горизонтальное меню для своего проекта. Как его сделать?
Приведу несколько примеров как сделать горизонтальное меню для сайта.
Как самостоятельно создать горизонтальное меню
Для начала нужно создать меню и присвоить ему заголовок и системное имя (тип меню).
Затем создать модуль меню и привязать его к раннее созданному пункту меню.
Затем в настройках шаблона изменить css стиль шаблона css/template.css. Допишите в конце такой код:
#main ul {
display: block;
text-align: left;
color:#2a6bb2;
}
#main ul li {
display: inline;
margin: 0 !important;
padding: 0;
}
Где main нужно заменить на системное имя вашего меню.
Создать горизонтальное меню при помощи программы Artisteer
Для данной задачи будем использовать шаблон Joomla 2.5, который создадим при помощи программы Artisteer. Про программу смотрите: Artisteer программа — помощник web-мастера
При проектировании шаблона нужно обязательно включить горизонтальное меню в состав шаблона. После проведенного дизайна, необходимо сохранить и экспортировать уже новый, готовый шаблон с горизонтальным выпадающим меню.
Далее устанавливаем шаблон на сайт при помощи Менеджера расширений и активируем его. Таким образом была проведена предварительная подготовка для работы по созданию горизонтального выпадающего меню.
Теперь пришла очередь меню. Создание меню проводим стандартным методом. Создаем пункты меню и подпункты меню, которые будут в горизонтальном меню.
Как сделать подпункт меню? Да очень просто, при создании пункта меню или в режиме его редактирования указать для него «Родительский элемент».
На данном скриншоте представлен пример пункта и подпунктов горизонтального меню:
пункт меню — Файл robots.txt для Joomla 2.5
подпункт меню — robots.txt Ошибки и рекомендации.
Аналогичным образом строится иерархия для всех остальных пунктов.
Созданный модуль меню устанавливаем в позиции шаблона “User3”.
После проведения всех вышеприведенных действий будет на сайте горизонтальное выпадающее меню.
Создать горизонтальное меню при помощи модуля ARI Ext Menu
Многофункциональный модуль меню Joomla 2.5 ARI Ext Menu предназначен для создания как горизонтального, так и вертикального меню. Выбор типа меню и настройка данного меню описано в статье:
Многофункциональный модуль меню Joomla 2.5
Что такое CSS спрайт? Горизонтальное меню на CSS спрайтах
Как запустить видеоурок:- Разархивировать скачанный файл.
- Открыть папку index.
- Запустить файл index. html в браузере.
Что такое спрайт?
Спрайт — это изображение, в состав которого включено некоторое количество более мелких изображений. На своих экранах вы видите пример спрайта. В нем находится 12 маленьких изображений. Давайте посмотрим, что мы имеем на данный момент, и что мы будем иметь в конце видеоурока. Мы видим горизонтальное меню, которое располагается по центру экрана вне зависимости от его ширины. При наведении на пункт меню, у нас меняется фон и цвет текста. При нажатии на пункт меню, у нас тоже меняется фон, но браузер Opera моей версии этого не отображает. Однако все другие современные браузеры это показывают. Поэтому в этом видеоуроке мы будем работать с браузером Firefox.
Горизонтальное меню с помощью CSS спрайтов
Давайте перейдем в код, и пошагово будем создавать меню. CSS спрайт, из которого мы будем создавать меню, будет находиться в дополнительных материалах и лежать в папке img.
Первым делом давайте вернем наши три абзаца текста в блок content.
<div> <div> <img src="img/trash_full.png" alt=""> <h4>Что такое Lorem Ipsum?</h4><img src="img/man_grey.png"><p>Lorem Ipsum - это текст-"рыба", часто используемый в печати и вэб-дизайне. Lorem Ipsum является стандартной "рыбой" для текстов на латинице с начала XVI века. В то время некий безымянный печатник создал большую коллекцию размеров и форм шрифтов, используя Lorem Ipsum для распечатки образцов. Lorem Ipsum не только успешно пережил без заметных изменений пять веков, но и перешагнул в электронный дизайн.</p><br> <h4>Где его взять?</h4><img src="img/f_user.png"><p>Есть много вариантов Lorem Ipsum, но большинство из них имеет не всегда приемлемые модификации, например, юмористические вставки или слова, которые даже отдалённо не напоминают латынь. Если вам нужен Lorem Ipsum для серьёзного проекта, вы наверняка не хотите какой-нибудь шутки, скрытой в середине абзаца. Также все другие известные генераторы Lorem Ipsum используют один и тот же текст, который они просто повторяют, пока не достигнут нужный объём. </p><br> <h4>Почему он используется?</h4><img src="img/barak_obama.png"><p>Давно выяснено, что при оценке дизайна и композиции читаемый текст мешает сосредоточиться. Lorem Ipsum используют потому, что тот обеспечивает более или менее стандартное заполнение шаблона, а также реальное распределение букв и пробелов в абзацах, которое не получается при простой дубликации "Здесь ваш текст.. Здесь ваш текст.. Здесь ваш текст.." Многие программы электронной вёрстки и редакторы HTML используют Lorem Ipsum в качестве текста по умолчанию, так что поиск по ключевым словам "lorem ipsum" сразу показывает, как много веб-страниц всё ещё дожидаются своего настоящего рождения. </p><br> <h4>Откуда он появился?</h4><img src="img/photo. png"><p>Многие думают, что Lorem Ipsum - взятый с потолка псевдо-латинский набор слов, но это не совсем так. Его корни уходят в один фрагмент классической латыни 45 года н.э., то есть более двух тысячелетий назад. Ричард МакКлинток, профессор латыни из колледжа Hampden-Sydney, штат Вирджиния, взял одно из самых странных слов в Lorem Ipsum, "consectetur", и занялся его поисками в классической латинской литературе. </p><br> </div> </div>
После каждого шага мы будем проверять, как это смотрится в браузере.
Вторым этапом давайте уберем верхнее изображение. Мы не будем исключать его из кода, а просто зададим ему минусовой z-индекс.
#header img#pic2 { width: 100px; height: 100px; position: absolute; top: 68px; left: 490px; z-index: -2; }
Далее нам нужно определиться с тем, в каком блоке будет располагаться наше меню. Мы можем его расположить в блоке контента либо в оболочке wrapper. Нам нужно, чтобы наше меню находилось в центре экрана, но позиционировать меню мы будем по центру блока, в котором оно находится и никак иначе. Если оно будет находиться в блоке content, то оно будет позиционироваться по центру блока content, но так как наше правое меню больше, чем левое, то блок с нашим горизонтальным меню не будет находиться по центру. Именно поэтому нам нужно располагать наше меню по центру оболочки wrapper. Возможно, это сейчас непонятно, но если вы попробуете расположить меню в блоке content, а потом в оболочке wrapper, то вы заметите разницу.
Давайте пропишем код меню на нашей странице. Я его вставляю после блока content, так как оно должно располагаться над этим блоком.
<ul> <li> <a href="page.html" title="Главная">Главная</a> </li> <li> <a href="#" title="Обо мне">Обо мне</a> </li> <li> <a href="#" title="О сайте">О сайте</a> </li> <li> <a href="#" title="Контакты">Контакты</a> </li> </ul>
Давайте разберем код нашего меню. Это обычный ненумерованный список. Он имеет идентификатор menu, внутри него есть теги <li></li> — пункты нашего меню, внутри которых находятся ссылки на страницы нашего сайта. В каждом пункте меню по одной ссылке. Сохраняем и смотрим, что у нас получается.
Мы видим, что меню отобразилось ниже всего сайта и виден только пункт меню «Главная» и половина пункта «Об авторе». Чтобы это исправить, нам нужно добавить стили для идентификатора нашего меню.
Переходим в таблицу стилей. Наш спрайт имеет ширину 420 пикселей и высоту 180 пикселей. Для списка с идентификатором menu мы задаем абсолютное позиционирование. Так как оболочка wrapper у нас имеет позиционирование относительное, то это меню будет позиционироваться относительно оболочки wrapper. Потом мы задаем меню left, равный 50%. Чтобы наше меню располагалось по центру крана, мы прописываем ему margin-left, равный -210 пикселей — половина ширины нашего спрайта. Благодаря таким манипуляциям, наше меню будет находиться по центру не зависимо от ширины экрана. Я надеюсь, это понятно. Ну и последний пункт — top в 70 пикселей. Он нужен нам для того, чтобы меню располагалось не в самом верху страницы, а на пересечении хедера и контента.
ul#menu { margin-left: -210px; position: absolute; left: 50%; top: 70px; }
Далее мы задаем стили тегам <li>, которые находятся в нашем меню. Каждому пункту меню мы задаем фоновое изображение — наш спрайт. Следует заметить, что фон не должен повторяться. Чтобы наши пункты меню располагались горизонтально, мы прописываем им обтекание left. Ставим значения высоты и ширины каждому пункту меню. Если посмотреть на примере, то синий прямоугольник показывает ширину и высоту каждого пункта меню.
ul#menu li { background: url('img/menu.png') no-repeat; float: left; height: 60px; width: 105px; }
Дальше мы прописываем стили для ссылок, которые находятся в данном меню. Мы их пока уберем и просто посмотрим, что у нас получается на данный момент. Мы видим, что наши пункты меню имеют фоновое изображение. Оно не кликабельно. На этих фоновых изображениях у нас есть ссылки, которые кликабельны.
Теперь давайте добавим стили для ссылок. Значение display: block делает наши ссылки блочным элементом. Мы им задаем ширину и высоту 100%, что означает, что они будут занимать всю область пункта меню. Свойство text-indent с большим отрицательным значением прячет наш текст ссылки за область экрана. Зачем нам текст ссылки, если у нас есть спрайт, на котором мы увидим и фон, и текст?
ul#menu li a { display: block; height: 100%; width: 100%; text-indent: -9999px; }
Сохраняем. Смотрим, что получается. У нас исчез текст ссылки, и пункт меню стал полностью кликабельным. Хочу сказать, что половину дела мы уже сделали.
Давайте перейдем в код и добавим еще стили для трех состояний пункта меню home: простое состояние, состояние при наведении и состояние при нажатии. Это только для одного пункта меню. В каждом состоянии мы прописываем лишь одно свойство — background-position. А вот значения в разных состояниях отличаются.
ul#menu li#home { background-position: 0px 0px; } ul#menu li#home:hover { background-position: 0px -60px; } ul#menu li#home:active { background-position: 0px -120px; }
Давайте посмотрим на примере. Синий прямоугольник показывает вам пункт меню home. Мы видим, что этот пункт включает лишь левую верхнюю часть всего спрайта. Также мы видим две оси: ось Х (значение left) и ось Y (значение top). Простое состояние пункта меню home находится в значении ноль по оси X и Y. Если мы посмотрим, то мы это и прописали. При наведении на пункт меню у нас должна высвечиваться другая часть спрайта. Чтобы это сделать, мы должны переместить фон вверх, а чтобы переместить его вверх, нам нужно задать значение top в -60 пикселей. Здесь обязательно обратите внимание, что мы двигаем не пункт меню, а спрайт. Именно поэтому у нас значение будет отрицательным. То есть по оси Х получается 0 пикселей, а по оси Y — -60. Посмотрим это в коде. Так и есть. Для третьего состояния принцип тот же. По оси X получается 0 пикселей, а по оси Y — -120.
Давайте сохраним и проверим в браузере, что у нас получилось. Наводим мышку на пункт меню «Главная» — она меняет у нас фон и цвет текста. А теперь попробуем нажать. Фон становится чуть темнее.
Теперь давайте пропишем стили для второго пункта меню «Об авторе». Здесь у нас уже будет отрицательное значение и по оси Х. Мы ставим -105 пикселей по оси Х, а дальше все происходит по тому же принципу.
ul#menu li#author { background-position: -105px 0px; } ul#menu li#author:hover { background-position: -105px -60px; } ul#menu li#author:active { background-position: -105px -120px; }
Сохраняем. Смотрим, что получается. Второй пункт меню тоже заработал.
То же самое делаем и с остальными пунктами меню.
ul#menu li#about { background-position: -210px 0px; } ul#menu li#about:hover { background-position: -210px -60px; } ul#menu li#about:active { background-position: -210px -120px; } ul#menu li#contact { background-position: -315px 0px; } ul#menu li#contact:hover { background-position: -315px -60px; } ul#menu li#contact:active { background-position: -315px -120px; }
Все пункты меню у нас работают, и на этом можно было бы закончить, но мы видим, что меню мешает заголовку первого абзаца. Эта проблема решается быстро. Нам просто нужно задать отступ от верхнего края для блока content. Зададим 20 пикселей.
#content { background-color: #fff; margin: 20px 20% 0 120px; padding-bottom: 40px; }
Вторая возможная проблема — это когда мы будем уменьшать сайт, то наше горизонтальное меню может залезть на левое и правое меню. Чтобы этого не случилось, мы уже знаем, что нам нужно задать минимальную ширину для блока wrapper. Меняем 600 пикселей на 720.
#wrapper { width: 80%; min-width: 720px; max-width: 1200px; border-left: 1px solid #ccc; border-right: 1px solid #ccc; margin: 0 auto; background-color: #fff; text-align: left; min-height: 100%; height: auto !important; height: 100%; position: relative; }
Сохраняем. Проблема решена.
Поздравляю вас с новыми знаниями. Чтобы их не забыть, вам следует их потренировать на практике. Создайте, например, какое-нибудь красивое вертикальное меню или оформите с помощью спрайтов весь свой сайт. Возможно, это покажется удивительным. Как это так — весь сайт оформить с помощью спрайтов? Но хочу вам сказать, что многие интернет сайты делают большую часть своего оформления при помощи CSS спрайтов, так как они сокращают скорость загрузки сайта. Все-таки есть разница: загрузите вы одно изображение или штук двадцать.
Сервис создания CSS спрайтов
Напоследок хочу вас познакомить с сайтом, который поможет вам в создании CSS спрайтов — http://csssprites.com. Если у вас уже есть изображения. Например, одно — фон страницы, другое — фон меню, третье — фон хедера, то при помощи кнопки «Обзор» вы их можете загрузить на этот сайт. Если вам требуется больше изображений, то нажмите «need more?». В опциях вы можете отрегулировать отступы между элементами, рамку для изображений, положение элемента (слева или сверху) и фоновый цвет (прозрачный либо RGB). Потом нажимаете кнопку «generate!», после чего у вас генерируется изображение. Чуть ниже у вас есть таблица. В левой колонке указаны все участвующие изображения, а справа указаны стили, чтобы использовать эти изображения. Спрайт вы можете загрузить в формате png либо просмотреть его в формате html. У нас получился спрайт, состоящий из четырех изображений.
Спасибо за внимание. До встречи в следующем видеоуроке!
1. Темно синее CSS меню. Меню в темно синем стиле 100% ширины. Демо |
2. Стильное зеленое меню. Меню в зеленом стиле подойдет для многих цветов фона. Демо |
3. Глянцевое меню. Чёрное меню с оранжевым эффектом при наведении и зеркальным отблеском, применяется на белом фоне. Демо |
4. Стильное коричневое меню. Меню в коричневом цвете, затемняющееся при наведении кусора. Демо |
5. Черное глянцевое меню. Черное меню с глянцевым эффектом на белом фоне. Демо |
6. Округлое синее меню. Синее меню с закругленными углами и красивым эффектом при наведении, может использоваться на белом фоне. Демо |
7. Разноцветное меню Разноцветное меню с эффектом разгибания уголка при наведении. Демо |
8. Шоколадный стиль меню. Меню в шоколадном стиле с эффектом выпуклости при наведении. Демо |
9. Блейзер меню. Блейзер меню, с интересным эффектом при наведении которое, может быть использовано на любом светлом фоне. Демо |
10. Flasy меню. Черное меню с зеленым эффектом свечения при наведении курсора. Демо |
11. Orcom меню. Меню с удивительным эффектом при наведении курсора, ширина меню установлена в 700 px. Демо |
12. Oplaz Css меню. Css меню с простым эффектом при наведении курсора, шириной 700 px и зеркальным эффектом. Демо |
13. Quaza CSS меню. Темно красное меню, длиной 700 px с простым эффектом при наведении и оранжевым активным пунктом. Демо |
14. Flosy CSS меню. CSS меню с эффектом рамки при наведении на пункт, меню сделано с применением одного изображения. Демо |
15. Vonso CSS меню. CSS меню с красивым фоном. Демо |
16. Razer меню. Простое меню с двумя различными эффектами при наведении и для активного пункта меню. Демо |
17. Brány CSS меню. Простое меню с закругленными углами. Демо |
18. Capzl CSS меню. Глянцевое горизонтальное меню с зеркальным отражением. Демо |
19. Skin CSS меню. Горизонтально меню со скругленными углами и активными пунктами в виде вкладок. Демо |
20. Nozml меню. Простое меню, сделанное без использования изображений, его можно размещать в верхней части шапки сайта, для отображения основных важных пунктов. Демо |
21. Rapak CSS меню. Горизонтальное меню с красивым фоном и эффектом рамки при наведении курсора на пункт. Демо |
22. Czoo CSS меню. Простое горизонтальное меню 100%, ширины с эффектом при наведении курсора. Демо |
23. Sapy CSS меню. Классическое горизонтальное меню, может быть использовано практически для любого сайта. Демо |
24. Голубое CSS меню. Меню с красивым фоном, имеющим изогнутый вид. Демо |
25. Cremy CSS меню. Меню с затемненными уголками пунктов, может быть использовано на светлых и темных фонах. Демо |
26. Sloon CSS меню. Светлое меню с оранжевыми активными пунктами. Демо |
27. Artine CSS меню. Креативное горизонтальное меню. Демо |
28. Woody CSS меню. Меню с необычным оформлением пунктов. Демо |
29. Серебристое меню. Серебристое меню с удивительным эффектом при наведении курсора, может использоваться на белом фоне. Демо |
30. Глянцевое меню. Черное глянцевое меню с зеркальным отражением и синим эффектом при наведении курсора. Демо |
CSS Вертикальная панель навигации
Вертикальная панель навигации
Чтобы создать вертикальную панель навигации, вы можете стилизовать элементы внутри списка, в дополнение к коду с предыдущей страницы:
Объяснение примера:
-
дисплей: блок;
— Отображение ссылок как блочных элементов составляет целое область ссылки кликабельна (не только текст), и это позволяет нам указать ширину (а также отступы, поля, высота и т. д.если хотите) -
ширина: 60 пикселей;
— Элементы блока занимают всю ширину, доступную по умолчанию. Мы хотим указать ширину 60 пикселей
Вы также можете установить ширину
- и удалить ширину ,
поскольку они будут занимать всю ширину, доступную при отображении в виде блочных элементов. Результат будет тот же, что и в нашем предыдущем примере:.
- или для центрирования ссылок.
Добавьте свойство
border
в- , чтобы добавить границу вокруг панели навигации. Если ты тоже хочешь
границ внутри панели навигации, добавьте
- , кроме
последний:
Пример
ul {
border: 1px solid # 555;
}li {
выравнивание текста: по центру;
нижняя граница: твердое тело 1px # 555;
}li: последний ребенок {
Попробуй сам »
нижняя граница: нет;
}Полноразмерная фиксированная вертикальная панель навигации
Создать полноразмерную «липкую» боковую панель навигации:
Пример
ul {
Попробуй сам »
list-style-type: none;
маржа: 0;
отступ: 0;
ширина: 25%;
цвет фона: # f1f1f1;
высота: 100%; / * Полная высота * /
положение: фиксированное; / * Заставить прилипнуть, даже при прокрутке * /
перелив: авто; / * Включить прокрутку, если в боковой навигации слишком много контента * /
}Примечание: Этот пример может некорректно работать на мобильных устройствах.
Простая горизонтальная панель навигации CSS с использованием встроенного блока | автор: Chun Ming Wang
Эффект от каждой строчки кода можно наблюдать с помощью простого образа докера Browser-Sync.
HTML-код горизонтальной панели навигации выглядит следующим образом.
Горизонтальную панель навигации можно создать двумя разными способами.Один использует
встроенный блок
, а другой используетfloat
. В этой статье представлен только методinline-block
.Код для горизонтального меню навигации, в котором используются встроенные
и
, выглядит следующим образом. Важные шаги отмечены и объяснены.* {
размер коробки: рамка-рамка;
} body {
margin: 0;
отступ: 0;
цвет фона: #ccc;
} nav ul {
стиль списка: нет;
отступ: 0;
маржа: 0;
цвет фона: # 444;
выравнивание текста: по центру; / * шаг 6 * /
} nav li {
display: inline-block; / * шаг 1 * /
width: 20%; / * шаг 4 * /
margin-right: -4px; / * шаг 5 * /
} nav a {
display: block; / * шаг 2 * /
text-decoration: none; / * шаг 3 * /
} / * общий стиль текста * /
nav a {
font-family: sans-serif;
высота: 40%; / * по центру по вертикали * /
line-height: 40%; / * по центру по вертикали * /
color: #fff;
} nav a: hover {
background-color: # 005f5f;
}nav a.активный {
background-color: #eee;
цвет: # 444; Курсор
: по умолчанию;
}Шаг 1: установите
display: inline-block
для каждого
внутри. Этот код заставляет все
оставаться в одной строке. Это также позволяет мне контролировать ширину, поля и отступы.Шаг 2: установите отображение
: блок
для каждого. Это также позволяет мне контролировать ширину, поля и отступы.
Шаг 3: удалите подчеркивание по умолчанию.
Шаг 4: установите ширину 20%. Есть пять ссылок.
5 x 20% = 100%
.Можно заметить, что последняя ссылка переходит на следующую строку на этом шаге. Поскольку для
встроенных блоков
элементов, к этим элементам добавляется небольшой запас (как описано в этой статье). Один из способов решения этой проблемы — использовать отрицательную маржу.Шаг 5: добавьте отрицательную маржу. Величина отрицательной маржи должна определяться по следам и ошибкам.(В CSS есть так много обходных путей. Неважно.)
Шаг 6: центрируйте панель навигации.
ОК, готово.
Простая горизонтальная навигация | CSS-фрагменты
Примечание: Первоначально этот пост был написан 3+ года назад, а это были годы веб-разработки, то есть вечность. Я переделал фрагмент, чтобы использовать лучший CSS.
В этом уроке я исследую два разных метода горизонтальной навигации на больших экранах. Фрагмент адаптивный.Он создаст вертикальное меню на маленьких экранах и горизонтальное меню на больших экранах.
См. Простую адаптивную горизонтальную навигацию Pen от Лизы (@lisa_c) на CodePen.
Предпочитаемый метод обучения?
Фрагменты кода
Если вам просто нужен код и не нужно описание.Просмотр видео
Если вам нравится, как что-то работает, с пояснением, посмотрите видео.Чтение описания
Если вы научитесь лучше читать, я включаю расшифровку видео с соответствующими встроенными фрагментами кода.Только код
См. Простую адаптивную горизонтальную навигацию Pen от Лизы (@lisa_c) на CodePen.
См. Простую адаптивную горизонтальную навигацию Pen от Лизы (@lisa_c) на CodePen.
Видео
Выписка
Начнем с HTML. У меня простой неупорядоченный список ссылок. Каждый элемент списка имеет имя класса, связанное с его именем.
Я буду использовать подход, ориентированный на мобильные устройства, и начну оформлять этот список как вертикальную навигацию, чтобы он хорошо смотрелся на телефонах и планшетах меньшего размера.
Я убираю поля и отступы и сначала задаю цвет фона для тела.
кузов { маржа: 0; отступ: 0; фон: #ccc; }
Затем я задам стиль для списка, чтобы удалить маркеры и присвоить ему цвет фона. Я хочу, чтобы текст был по центру. Он еще не выглядит идеально центрированным, но если я удалю прокладку, оно будет. Очистка поля заставит его охватить верхнюю часть страницы, которую я хочу.
Я нацелен на
ul
внутри.nav
, потому что мне, вероятно, нужен другой стиль для неупорядоченных списков без навигации..nav ul { стиль списка: нет; цвет фона: # 444; выравнивание текста: центр; отступ: 0; маржа: 0; }
В элементах списка внутри nav (
.nav li
) я установлю типографику..nav li { семейство шрифтов: «Освальд», без засечек; размер шрифта: 1.2em; высота строки: 40 пикселей; высота: 40 пикселей; нижняя граница: 1px solid # 888; }
Я устанавливаю
line-height
иheight
на40px
так, чтобы текст был центрирован по вертикали в каждой строке.Я также даю тонкую границу, чтобы различать линии.Наконец, я отключу подчеркивание и сделаю текст в ссылках белым.
nav a { текстовое оформление: нет; цвет: #fff; }
Опять же, я нацелен только на теги привязки внутри
.nav
, потому что я не хочу предполагать, что все теги привязки будут иметь такой стиль.Ссылки доступны только тогда, когда я нахожусь над словами в ссылке. Я хочу, чтобы ссылка охватывала весь блок.Поэтому мне нужно добавить
display: block
к этим ссылкам. Теперь я могу щелкнуть в любом месте, чтобы перейти на другую страницу.Я хочу изменить цвет при наведении курсора на ссылку. Я могу сделать это с помощью этого:
nav a: hover { цвет фона: # 005f5f; }
Было бы неплохо иметь небольшой эффект перехода при наведении курсора, поэтому я добавлю это.
переход: .3s цвет фона;
Я добавляю его в тег
a
, а не в селекторhover
.Это позволит переходу происходить как при наведении указателя мыши на ссылку, так и при удалении указателя мыши.Последнее, что я хочу сделать, прежде чем стилизовать более широкую экранную навигацию и сделать ее горизонтальной, — это стилизовать активный класс.
У меня сейчас активный класс по ссылке «новости». Я могу оформить этим активные ссылки.
a.active { цвет фона: #fff; цвет: # 444; }
Но у нас проблема при наведении курсора на активную ссылку.Я не хочу, чтобы этот цвет изменился. Поэтому я добавлю
.nav
в начале, чтобы этот селектор имел более конкретную специфику и переопределил ранее определенный.nav a: hover
.Я хочу изменить курсор
: по умолчанию;
, поэтому не похоже, что нажатие на эту ссылку ни к чему не приведет.Итак, все работает нормально, и это будет хорошо смотреться на телефоне. Однако на более широком экране это выглядит странно.
Когда экран больше 600 пикселей, я хочу переключиться на горизонтальную навигацию, так что это будет моя точка останова.
Все, что меньше 600 пикселей, будет отображать навигацию по вертикали, а все с большим разрешением — по горизонтали.
Я могу добавить медиа-запрос.
@media screen and (min-width: 600px) { }
Затем я могу настроить таргетинг на
.nav li
внутри медиа-запроса. Поэтому на экране шириной не менее 600 пикселей он будет использовать этот код:.nav li { ширина: 120 пикселей; нижняя граница: нет; высота: 50 пикселей; высота строки: 50 пикселей; размер шрифта: 1.4em; }
Я делаю каждый пункт меню шириной 120 пикселей, так как здесь 5 элементов, а 5 * 120 — 600. Я удаляю границу и увеличиваю текст меню и панель.
Если мы немного сдвинем область просмотра, то увидим, как она изменится.
Теперь у нас есть два варианта сделать это горизонтальным. Один вариант — отобразить элементы списка как
встроенный блок
, а другой вариант — использовать числа с плавающей запятой. Первый способ проще, но у вас может быть причина использовать числа с плавающей запятой, поэтому я объясню оба варианта.Любой из вариантов будет работать в IE8, однако IE8 не распознает медиа-запрос. Позже нам нужно будет скопировать этот код в таблицу стилей только для IE8.Несмотря на то, что я все еще нацелен на селектор
.nav li
, я помещу другой код параметра за пределами этого первого выбора, чтобы я мог легко различать эти два варианта.Если я добавлю
.nav li { дисплей: встроенный блок; }
навигация работает неплохо.У нас есть небольшая проблема шириной около 600 пикселей, когда последний пункт меню переходит на другую строку. Кроме того, если я наведу курсор на другие элементы, вы увидите, что у нас есть небольшой промежуток серого цвета. Это потому, что при использовании
встроенного блока
вводится небольшой запас. Мы можем с этим справиться, добавив небольшую отрицательную маржу.margin-right: -4px;
А теперь все отлично выглядит.
Итак, этот метод работает, и мы могли бы остановиться на этом.Я не уверен, есть ли у этого обратная сторона, но вам может понадобиться другой вариант и посмотреть, как будут работать поплавки.
.nav li { плыть налево; }
И это почти работает, но пропала серая полоса. Это связано с тем, что родительский элемент рухнул, когда дочерние элементы были выведены из потока путем их перемещения.
Если я включу выделение при предварительном просмотре, вы увидите каждый тег
li
с его рамкой. Но тег ul — это всего лишь одна строка, которая означает, что она свернута.Есть множество способов исправить это, и у меня есть целое видео, объясняющее все способы. В этом случае я просто добавлю
.nav ul { перелив: авто; }
, который прост и будет работать.
Однако у нас есть новая проблема, и это то, что навигация больше не центрирована. В зависимости от вашего веб-сайта это может не быть проблемой. Но если мы хотим исправить это, мы можем добавить это:
ширина: 600 пикселей; маржа: 0 авто;
, чтобы отцентрировать его.
И последнее изменение — сделать всю панель
nav
темно-серым цветом, чтобы она расширялась.Итак, метод inline-block намного меньше кода и проще. Но я подумал, что было бы полезно увидеть оба метода. Раньше я всегда использовал метод
float
, и его правильное использование иногда вызывало головную боль.Наконец, этот код хорошо работает во всех современных браузерах, включая IE9 и выше. Если бы мы посмотрели на это в IE8, мы бы увидели только вертикальную навигацию, подобную этой, независимо от ширины экрана, потому что IE8 не распознает медиа-запросы.
Чтобы заставить его работать в IE8, мы можем использовать условную таблицу стилей и добавить код, который мы только что добавили в наш медиа-запрос.
.nav li { ширина: 120 пикселей; нижняя граница: нет; высота: 50 пикселей; высота строки: 50 пикселей; дисплей: встроенный блок; маржа слева: -4px; }
Это никогда не будет отображать вертикальную навигацию в браузерах IE, но маловероятно, что кто-то, использующий IE, будет просматривать это на телефоне, так что все должно быть в порядке.
Если бы я сначала стилизовал горизонтальное меню, нам не понадобилась бы таблица стилей для IE. Я мог бы использовать
max-width
вместоmin-width
и изменить способ написания кода. Но я хотел использовать прежде всего мобильный подход. Код в итоге оказался проще, чем когда я изначально подходил к нему с большого экрана.Надеюсь, это было полезно. Если у вас есть вопросы, напишите их на css-snippets.com.
Панель навигации CSS— TutorialBrain
На главную »CSS» Панель навигации CSS
Панель навигации CSS представляет собой комбинацию списков и ссылок.
Как начать создавать панели навигации
Step1 : Создайте неупорядоченный список, как показано ниже —
- На главную
- О нас
- Сообщество
- Карьера
Шаг 2 : Добавьте ссылок к элементам списка с помощью тега < a > , чтобы элементы списка стали интерактивными.
Step3 : Удалите стиль из списка, который делает его похожим на маркированный список.
# ul-nb { стиль списка: нет; }
Примечание. Также можно использовать list-style-type: none .
Step4 : Вы можете установить другие свойства, связанные со стилем, в элементах списка в зависимости от того, что вы хотите —
- Свойства с плавающей запятой, такие как float: left
- Цвет фона списка ссылок
- Margin, Padding properties — вы может потребоваться установить значения Margin и Padding как 0, если требуется
- Свойства, связанные с шириной и высотой
- text-decoration: none часто используется для удаления подчеркивания из ссылки
- overflow: hidden часто используется для остановки элементы списка должны выходить за пределы списка
- свойство выравнивания текста и т. д.
Примечание / информация:
1.Вы можете использовать
- внутри тега —
Например:
2.ИЛИ Вы также можете использовать тег внутри тега
- .
Например:
, но вы должны иметь в виду, что если вы используете 2-й формат, вы должны использовать —
, чтобы вся область ссылок была интерактивной.
Пример создания панелей навигации
# ul-nb { стиль списка: нет; маржа: 2 пикселя; отступ: 3 пикселя; } # ul-nb li { плыть налево; отступ: 10 пикселей; фон: оранжевый; выравнивание текста: центр; маржа слева: 5 пикселей; } # ul-nb li: hover { фон: красный; непрозрачность: 0,8; цвет белый; }
Горизонтальная панель навигации
Горизонтальная панель навигации также называется «горизонтальной панелью навигации».По сути, это панель навигации, которая находится в горизонтальном направлении по оси X.
Есть 3 способа создания горизонтальных панелей навигации —
- Создание элементов списка как Float без использования дисплея как блока .
- Создание элементов списка в виде Float с отображением в виде блока .
- Использование элементов списка как inline .
Мы уже показали простой способ создания горизонтальной панели навигации без отображения в виде блока (опция 1 )
Давайте посмотрим, как создать горизонтальную панель навигации, используя опции 2 и 3 .
Горизонтальная навигация с использованием плавающего режима и отображения в качестве блока
Свойство float часто используется со свойством display: block, чтобы элементы располагались бок о бок по горизонтали, а свойства ширины и высоты можно было легко установить.
Пример горизонтальной навигации с использованием плавающего режима и отображения в качестве блока
# ul-nb { стиль списка: нет; переполнение: скрыто; фон: красный; маржа: 0; отступ: 0; } # ul-nb li a { выравнивание текста: центр; отступ: 10 пикселей; ширина: 80 пикселей; } # ul-nb li { плыть налево; } # ul-nb li: hover { фон: коричневый; } a { дисплей: блок; }
Горизонтальная навигация с использованием дисплея как встроенного
Если вы создаете горизонтальную панель навигации, используя отображение как встроенное, вы не сможете применить свойства ширины и высоты.
Встроенное отображение не влияет на свойства ширины и высоты.
# ul-nb { стиль списка: нет; } # ul-nb li { дисплей: встроенный; отступ: 10 пикселей; фон: синий; цвет белый; выравнивание текста: центр; маржа слева: 5 пикселей; } # ul-nb li: hover { фон: красный; цвет: желтый; }
Горизонтальные панели навигации путем создания разделителей
Вы можете создавать разделители между меню.Посмотрим, как —
.navigation-menu ul { отступ: 0 пикселей; маржа: 0px; } ul { отступ: 0; переполнение: скрыто; цвет фона: голубой; } li { плыть налево; } li a { дисплей: встроенный блок; черный цвет; выравнивание текста: центр; отступ: 10 пикселей 20 пикселей; текстовое оформление: нет; } li a: hover { цвет фона: грифельно-синий; } #navigation ul { размер шрифта: 1.4em; } #navigation ul li { дисплей: встроенный; цвет белый; } #navigation li: not (: first-child): before { содержание: "|"; }
Подробнее Пример горизонтальных панелей навигации
.navigation-menu ul { отступ: 0 пикселей; маржа: 0px; } ul { отступ: 0; переполнение: скрыто; цвет фона: черный; } li { плыть налево; тип-стиль-список: нет; } li a { дисплей: встроенный блок; цвет белый; выравнивание текста: центр; отступ: 10 пикселей 20 пикселей; текстовое оформление: нет; } li a: hover { цвет фона: малиновый; } #navigation ul { размер шрифта: 1.5em; }
Объяснение случайной темы здесь
# ul-nb { стиль списка: нет; переполнение: скрыто; фон: цвет морской волны; маржа: 0; отступ: 0; ширина: 100 пикселей; } # ul-nb li a { padding-bottom: 5 пикселей; ширина: 80 пикселей; } # ul-nb li: hover { фон: коричневый; } a { дисплей: блок; }
Вертикальная панель навигации с активной ссылкой
Объяснение случайной темы здесь
body { маржа: 0; отступ: 0; } # ul-nb { стиль списка: нет; граница: сплошной синий 2px радиус границы: 5 пикселей; переполнение: скрыто; фон: светло-серый; маржа: 0; отступ: 0; ширина: 150 пикселей; } # ul-nb li a { выравнивание текста: слева; текстовое оформление: нет; отступ: 10 пикселей; } # ul-nb li: hover { фон: коричневый; } a { дисплей: блок; } .active-link { фон: серый; }
Подробнее Пример вертикальных панелей навигации
.navigation-menu ul { отступ: 0 пикселей; маржа: 0px; } ul { отступ: 0; переполнение: скрыто; цвет фона: черный; } li { тип-стиль-список: нет; } li a { дисплей: блок; цвет белый; выравнивание текста: слева; отступ: 10 пикселей 20 пикселей; текстовое оформление: нет; } li a: hover { цвет фона: малиновый; } #navigation ul { размер шрифта: 1.5em; }
Большинство современных веб-сайтов имеют логотип либо —
- Верхний левый угол
- Верхний центр
- Верхний правый угол
Вы можете использовать такие свойства, как —
- line-height property- Установите свойство line-height пунктов меню.
- float свойство: Вы можете использовать код float: left , чтобы переместить логотип в верхний левый угол, float: right , чтобы переместить логотип в верхний правый угол.
Ниже приведен пример панели навигации с логотипом, при этом панель навигации находится в центре.
.nav-bar { цвет фона: светло-серый; высота: 56 пикселей; ширина: 100%; выравнивание текста: центр; } .nav-bar img { плыть налево; } .nav-bar ul { отступ: 0; маржа: 0; } .nav-bar li { стиль списка: нет; отступ: 0; дисплей: встроенный блок; } .nav-bar li a { текстовое оформление: нет; добавление: 15px; цвет: # e25822; высота строки: 55 пикселей; } # nav-container { ширина: 100%; маржа: 0; добавление: 0; } тело { маржа: 0; отступ: 0; }
Примечание / информация / успех Если просто добавить float: left; в неупорядоченном списке, строка меню переместится влево.× Закрыть оповещение
В этом примере мы покажем вам, как создать фиксированную панель навигации. Это означает, что мы собираемся закрепить панель навигации в одном месте, даже когда пользователь прокручивает веб-страницу.
Советы:
- Используйте положение : фиксированное для неупорядоченного списка (ul)
- Удалите стиль из списка, используя list-style-type: none
- Используйте отображение : блок для якорей
Пример фиксированной панели навигации
.fix-navigation-menu ul { отступ: 0 пикселей; маржа: 0px; размер шрифта: 1.5em; } ul { положение: фиксированное; цвет фона: черный; } li { тип-стиль-список: нет; } li a { дисплей: блок; цвет белый; выравнивание текста: слева; отступ: 10 пикселей 20 пикселей; текстовое оформление: нет; } li a: hover { цвет фона: малиновый; } .textalignval { плыть налево; отступ: 1px 200px; ширина: 60%; высота: 300 пикселей; }
Боковое меню навигации
Приведенный выше пример также является примером меню навигации боковой панели.
Если вы удалите display: block , панель навигации будет иметь не полную высоту, а автоматическую высоту.
Вы можете добавить overflow-x: auto , чтобы добавить горизонтальную прокрутку, которая появится только в случае переполнения, иначе вы также можете добавить overflow-x: hidden , чтобы скрыть горизонтальную прокрутку.
Пример меню навигации боковой панели
.fix-navigation-menu ul { отступ: 0 пикселей; маржа: 0px; размер шрифта: 1.5em; } ul { положение: фиксированное; / * Исправляем положение даже при прокрутке * / цвет фона: черный; } li { тип-стиль-список: нет; / * Удалить в тип стиля * / } li a { цвет белый; выравнивание текста: слева; отступ: 2 пикселя; текстовое оформление: нет; / * Удалить, чтобы увидеть результат * / } li a: hover { цвет фона: малиновый; } .textalignval { плыть налево; / * Нет эффекта, если display: block * / отступ: 1px 200px; ширина: 60%; высота: 300 пикселей; }
Раскрывающееся меню навигации
justify-content: space-between выравнивает гибкие элементы вдоль главной оси таким образом, что каждые 2 следующих друг за другом элемента имеют равные промежутки между ними.Это означает, что перед первыми элементами Flex и после последних элементов Flex нет дополнительного места.
Советы:
- Скрыть пункты меню в начале, скрыв неупорядоченный список внутри основных меню с помощью —
- Отображение элементов внутри каждого меню по вертикали и положения каждого элемента должен быть относительно других элементов. Вот такой код —
li: hover ul { дисплей: блок; позиция: абсолютная; }
- Не перемещать список вправо или влево.Добавьте поплавок : нет
Предупреждение / Опасность / Информация / Успех Не используйте visibility: hidden вместо display: none , потому что display: none удаляет элемент из потока макета и не занимает пространство, в то время как visibility: hidden скрывает элементы, но занимает пространство × Закрыть оповещение
Пример выпадающего меню навигации
ul { стиль списка: нет; отступ: 2 пикселя; } ul li { дисплей: блок; плыть налево; } li ul { дисплей: нет; } ul li a { дисплей: блок; цвет фона: # 0076B9; отступ: 10 пикселей; текстовое оформление: нет; цвет белый; ширина: 100 пикселей; граница: сплошной красный 1px; } ul li a: hover { цвет фона: # 0076B9; цвет белый; } li: hover ul { дисплей: блок; позиция: абсолютная; } li: hover li { float: нет; } li: hover a { цвет фона: # 94C548; черный цвет; } li: hover li a: hover { фон: черный; ширина: 100 пикселей; }
Адаптивная панель навигации
Важно создать панель навигации, которая будет хорошо смотреться на устройствах любого размера, сделав ее отзывчивой.
Лучший способ сделать панели навигации адаптивными — использовать Media Queries
Пример адаптивной панели навигации
* { размер коробки: рамка-рамка; } тело { маржа: 0px; семейство шрифтов: 'грузия'; } .responsive-navbar { ширина: 100%; высота: 50 пикселей; цвет фона: # 117DA9; положение: относительное; } .responsive-navbar .res-menu { дисплей: встроенный блок; } .responseive-navbar> .res-menu> .navvalue { дисплей: встроенный блок; размер шрифта: 22 пикселя; цвет: золото; отступ: 15 пикселей; } .responsive-navbar> .res-navbtn { дисплей: нет; } .responsive-navbar> .resnavbar-links { дисплей: встроенный; float: right; размер шрифта: 18 пикселей; } .responsive-navbar> .resnavbar-links> a { дисплей: встроенный блок; отступ: 13px 10px 13px 25px; текстовое оформление: нет; цвет белый; размер шрифта: 22 пикс. } .responseive-navbar> .resnavbar-links> a: hover { цвет фона: золото; черный цвет; } .responsive-navbar> # resnavbar-type { дисплей: нет; } @media all and (max-width: 650px) { .responsive-navbar> .res-navbtn { дисплей: встроенный блок; позиция: абсолютная; вправо: 0 пикселей; верх: 0px; } .responsive-navbar> .res-navbtn> label { дисплей: встроенный блок; ширина: 50 пикселей; высота: 50 пикселей; отступ: 12 пикселей; } .responseive-navbar> .res-navbtn> label: hover, .nav # resnavbar-type: checked ~ .res-navbtn> label { цвет фона: золото; } .responsive-navbar> .res-navbtn> label> span { дисплей: блок; ширина: 25 пикселей; высота: 10 пикселей; border-top: сплошной белый цвет 2 пикселя; } .responsive-navbar> .resnavbar-links { позиция: абсолютная; дисплей: блок; ширина: 100%; цвет фона: # 1ba1d6; высота: 0 пикселей; переполнение-y: скрыто; верх: 50 пикселей; слева: 0px; } .responseive-navbar> .resnavbar-links> a { дисплей: блок; ширина: 100%; } .responsive-navbar> # resnavbar-type: not (: checked) ~ .resnavbar-links { высота: 0 пикселей; } .responsive-navbar> # resnavbar-type: checked ~ .resnavbar-links { высота: 100vh; переполнение-у: авто; контур: 2 пикселя из чистого золота; } }
Создание меню на HTML и CSS
Если ваш веб-сайт не ограничен одной веб-страницей, вам следует подумать о добавлении панели навигации (меню).Раздел меню веб-сайта предназначен для помощи посетителю в навигации по сайту. Любое меню — это список ссылок, ведущих на внутренние страницы сайта. Самый простой способ добавить панель навигации на сайт — создать меню с помощью CSS и HTML.
Вертикальное меню
Первым шагом в создании вертикального меню является создание неупорядоченного списка. Нам также нужно иметь возможность идентифицировать список, поэтому мы добавим к нему атрибут
id
с идентификаторомnavbar
.Каждый элемент
нашего списка будет содержать одну ссылку:Наша следующая задача — сбросить стили списка, установленные по умолчанию. Нам нужно удалить внешние и внутренние отступы возле списка и маркеры в элементах списка.Затем установите желаемую ширину:
#navbar { маржа: 0; отступ: 0; тип-стиль-список: нет; ширина: 100 пикселей; }
А теперь пора стилизовать сами ссылки. Мы добавим к ним цвет фона, изменим параметры текста: цвет, размер и насыщенность шрифта, удалим подчеркивание, добавим небольшие отступы и переопределим отображение элемента
Самая важная часть наших изменений — это переопределение встроенных элементов для блокировки. Теперь наши ссылки занимают все доступное пространство элементов списка, то есть для перехода по ссылке нам больше не нужно наводить курсор точно на текст.
#navbar a { цвет фона: # 949494; цвет: #fff; отступ: 5 пикселей; текстовое оформление: нет; font-weight: жирный; граница слева: 5 пикселей твердое тело # 33ADFF; дисплей: блок; } #navbar li { граница слева: твердое тело 10 пикселей # 666; нижняя граница: 1px solid # 666; }
Мы объединили весь код, описанный выше, в один пример, теперь, нажав на кнопку
Попробуйте
, вы можете перейти на страницу с образцом и увидеть результат:Заголовок страницы <стиль> #navbar { маржа: 0; отступ: 0; тип-стиль-список: нет; ширина: 100 пикселей; } #navbar li { граница слева: твердое тело 10 пикселей # 666; нижняя граница: 1px solid # 666; } #navbar a { цвет фона: # 949494; цвет: #fff; отступ: 5 пикселей; текстовое оформление: нет; font-weight: жирный; граница слева: 5 пикселей твердое тело # 33ADFF; дисплей: блок; }При наведении курсора мыши на пункт меню его внешний вид может измениться, привлекая внимание пользователя.Вы можете создать этот эффект, используя псевдокласс
: hover
.Вернемся к предыдущему примеру вертикального меню и добавим в таблицу стилей следующее правило:
#navbar a: hover { цвет фона: # 666; граница слева: 5 пикселей твердое тело # 3333FF; }
Попытайся »Горизонтальное меню
В предыдущем примере мы рассмотрели вертикальную панель навигации, которая чаще всего находится на сайтах слева или справа от области основного содержимого.Однако меню с навигационными ссылками также часто располагается горизонтально вверху веб-страницы.
Вы можете создать горизонтальное меню, стилизовав обычный список. Свойство
display
для элементов
должно быть установлено наinline
, чтобы элементы списка размещались один за другим.Чтобы разместить элементы меню по горизонтали, сначала создайте неупорядоченный список со ссылками:
Давайте напишем для нашего списка пару правил, которые сбрасывают стиль, используемый для списков по умолчанию, и переопределяют элементы списка с блока на встроенный:
#navbar { маржа: 0; отступ: 0; тип-стиль-список: нет; } #navbar li {display: inline; }
Попытайся »Теперь нам нужно только определить дизайн стиля для нашего горизонтального меню:
#navbar { маржа: 0; отступ: 0; тип-стиль-список: нет; граница: 2px solid # 0066FF; радиус границы: 20 пикселей 5 пикселей; ширина: 550 пикселей; выравнивание текста: центр; цвет фона: # 33ADFF; } #navbar a { цвет: #fff; отступ: 5 пикселей 10 пикселей; текстовое оформление: нет; font-weight: жирный; дисплей: встроенный блок; ширина: 100 пикселей; } #navbar a: hover { радиус границы: 20 пикселей 5 пикселей; цвет фона: # 0066FF; }
Попытайся »Раскрывающееся меню
Меню, которое мы создадим, будет иметь основные навигационные ссылки, расположенные на горизонтальной панели навигации, и подпункты, которые будут отображаться только после наведения курсора мыши на пункт меню, к которому эти подпункты относятся.
Сначала нам нужно создать структуру HTML нашего меню. Основные навигационные ссылки мы разместим в неупорядоченном списке:
Мы поместим подпункты в отдельный список, заключив его в элемент
.
, который содержит родительскую ссылку на подпункты.Теперь у нас есть четкая структура для нашей будущей панели навигации:Теперь приступим к написанию кода CSS.Для начала вам нужно скрыть список подпунктов с помощью дисплея
: нет;
:#navbar ul {display: none; } #navbar li: hover ul {display: block; }
Удалите отступы и маркеры по умолчанию из обоих списков. Элементы списка с навигационными ссылками сделаны плавающими, образуя горизонтальное меню, но для пунктов списка, содержащих подпункты, установите
float: none;
#navbar, #navbar ul { маржа: 0; отступ: 0; тип-стиль-список: нет; } #navbar li {float: left; } #navbar ul li {float: none; }
Затем нам нужно убедиться, что наше раскрывающееся подменю не перемещает содержимое под панелью навигации вниз. Для этого мы установим элементы списка в положение
position: relative;
: absolute;
top
со значением100%
, чтобы подменю с абсолютным позиционированием отображалось точно под ссылкой.#navbar ul { дисплей: нет; позиция: абсолютная; верх: 100%; } #navbar li { плыть налево; положение: относительное; } #navbar {высота: 30 пикселей; }
Попытайся »Высота для родительского списка была добавлена специально, так как браузеры не принимают во внимание содержимое элемента как плавающее, то без добавления высоты наш список будет игнорироваться браузером, и содержимое, следующее за списком, будет обтекать наш список. меню.
Теперь нам нужно стилизовать оба наших списка, и выпадающее меню будет готово:
#navbar ul { дисплей: нет; цвет фона: # f90; позиция: абсолютная; верх: 100%; } #navbar li: hover ul {display: block; } #navbar, #navbar ul { маржа: 0; отступ: 0; тип-стиль-список: нет; } #navbar { высота: 30 пикселей; цвет фона: # 666; отступ слева: 25 пикселей; минимальная ширина: 470 пикселей; } #navbar li { плыть налево; положение: относительное; высота: 100%; } #navbar li a { дисплей: блок; отступ: 6 пикселей; ширина: 100 пикселей; цвет: #fff; текстовое оформление: нет; выравнивание текста: центр; } #navbar ul li {float: none; } #navbar li: hover {цвет фона: # f90; } #navbar ul li: hover {цвет фона: # 666; }
Попытайся »Как создать горизонтальное меню на чистом CSS без JavaScript
Создать горизонтальное меню на чистом CSS действительно легко.
Для этого вам просто нужно создать пару строк разметки HTML и стилей CSS.
Хотя вам всегда рекомендуется знать HTML и CSS, в этом руководстве я предоставлю вам все, чтобы вам не нужно было слишком беспокоиться, если вы новичок.
Просто следуй за мной.
Помните, мы не будем использовать какой-либо JavaScript, потому что мы хотим, чтобы наши вещи как всегда были простыми и очень быстрыми.
Не тратьте время зря
Прежде чем вы начнете, я рекомендую вам проверить демонстрацию ниже, чтобы вы могли быть уверены, что это правильное меню CSS, которое вам нужно и в котором вы нуждаетесь.
ДЕМО: Горизонтальное меню на чистом CSS.
Если это то, что вам нужно, продолжайте.
Ваша базовая структура HTML
Всегда начинайте с базы HTML5, см. Ниже.
Горизонтальное меню на чистом CSS Пример № 1
Ваша HTML-навигация
Поскольку мы используем HTML5, мы будем использовать тег навигации (nav).
Внутри этой навигации мы будем использовать простые теги привязки (а).
Теперь здесь, если хотите, вы можете использовать неупорядоченный (ul) список, как показано ниже.
Образец № 2
Но поскольку я хочу, чтобы это было просто, я просто буду использовать теги привязки (a), как показано ниже.
Образец № 3
Назовем наши меню «Домой», «Услуги» и «Контакт».
Внутри атрибута «href» я просто буду использовать символ хэштега.
Но имейте в виду, что вы можете изменить это на любой URL-адрес, который захотите.
Like вместо этого (#) вы можете добавить это (https: // supfort.com).
См. Ниже, как я только что добавил хэштег для этого примера.
Пример № 4
HTML-разметка полного меню
Давайте сложим полную HTML-разметку.
Это должно выглядеть, как показано ниже.
Горизонтальное меню на чистом CSS Пример № 5
Добавление CSS
Давайте украсим это меню с помощью CSS.
Сначала мы зададим цвет фона основной навигации.
В этом примере мы будем использовать темно-серый шестнадцатеричный цвет (# 515151), но вы можете использовать любой цвет, какой захотите.
Если вы хотите использовать другой цвет, вы можете использовать этот инструмент.
См. Ниже шестнадцатеричный цвет темно-серый (# 515151).
nav { фон: # 515151; }
Образец № 6
Имейте в виду, что внутри демонстрации я выравниваю все по центру, но это необязательно.
Так что просто используйте его, если хотите.
Но если нет, то, пожалуйста, сохраняйте простоту и не добавляйте это.
nav { фон: # 515151; выравнивание текста: центр; / * ЭТО НЕОБЯЗАТЕЛЬНО * / }
Пример № 7
Теперь давайте стилизуем наши элементы привязки (a).
Первое, что вам здесь нужно сделать, это изменить эти встроенные элементы уровня на встроенные блочные элементы.
Почему?
Потому что, если вы не измените их на встроенные блочные элементы, вы не сможете добавлять отступы, и нам нужны отступы, чтобы добавить интервал вокруг якорей (а).
nav a { дисплей: встроенный блок; }
Пример № 8
Наконец, мы просто добавим белый цвет, отступы, удалим подчеркивание, которое идет с каждой ссылкой, и простую анимацию перехода.
nav a { дисплей: встроенный блок; цвет: #FFF; отступ: 18px 12px; текстовое оформление: нет; переход: легкость в .3s; }
Образец № 9
Наведение CSS-меню
Последним шагом будет добавление цветов, когда пользователь наводит указатель мыши на каждую ссылку меню.
Это называется зависанием, поэтому мы будем использовать селектор «: hover».
Помните, что вы можете использовать любой шестнадцатеричный цвет, который вам нужен.
nav a: hover { цвет: # 515151; фон: #FFF; }
Пример № 10
Полное меню вместе
Чтобы закончить это руководство, давайте соберем все вместе.
В этом случае мы будем использовать внутренние стили CSS.
Но вы также можете использовать внешний лист CSS, если хотите.
Горизонтальное меню на чистом CSS <стиль> nav { фон: # 515151; } nav a { дисплей: встроенный блок; цвет: #FFF; отступ: 18px 12px; текстовое оформление: нет; переход: легкость в .3s; } nav a: hover { цвет: # 515151; фон: #FFF; }Образец № 11
И все, очень просто.
Если вы хотите загрузить полную демоверсию, воспользуйтесь ссылкой ниже.
ССЫЛКА: Скачать демо
Помните, HTML и CSS работают везде.
Итак, если вы хотите добавить этот код в свою любимую CMS, такую как WordPress, Joomla, Drupal, это возможно.
Это будет непросто, но возможно.
Если вам нужна помощь в этом, пожалуйста, отправьте мне сообщение.
Вы можете просто нажать на зеленую кнопку ниже.
Или, если вы живете недалеко от Форт-Уэрта, Техас, просто посетите мою домашнюю страницу.и позвони мне.
Вы сможете найти всю мою информацию внизу этой страницы.
Создание панелей навигации с помощью списков CSS | Учебник CSS
Каждому веб-сайту нужна навигационная панель, которая помогает посетителям перемещаться по сайту. Обычно это достигается путем размещения верхней горизонтальной панели навигации или боковой вертикальной панели навигации.
Панели навигации создаются с использованием списков HTML в сочетании с CSS, чтобы они больше походили на меню с несколькими параметрами.
Пример:
Вертикальная панель навигации
Простой список — это вертикальная панель навигации, если мы сделаем каждый элемент списка гиперссылкой.
Стиль приведенного выше списка можно изменить, добавив несколько простых свойств CSS:
CSS:
#navbar { тип-стиль-список: нет; маржа: 0; отступ: 0; ширина: 200 пикселей; цвет фона: #EEEEEE; } ul # navbar li a { дисплей: блок; цвет: # 000000; font-weight: жирный; отступ: 8 пикселей 16 пикселей; текстовое оформление: нет; } ul # navbar li a: hover { цвет фона: оранжевый; цвет белый; }
Всегда предпочтительно использовать какой-нибудь
id
илиclass
для создания такого стиля.Потому что, если мы напрямую стилизуем элементыul
иli
, как в примере ниже,ul { тип-стиль-список: нет; маржа: 0; отступ: 0; ширина: 200 пикселей; цвет фона: #EEEEEE; } li a { дисплей: блок; цвет: # 000000; font-weight: жирный; отступ: 8 пикселей 16 пикселей; текстовое оформление: нет; } li a: hover { цвет фона: оранжевый; цвет белый; }
, то все списки на нашем веб-сайте будут выглядеть как панель навигации, в то время как нам нужна только одна панель навигации на нашем веб-сайте, поэтому мы использовали идентификатор
navbar
в нашем списке, что означает, что только элемент списка сnavbar
идентификатор должен иметь такой стиль.ul # navbar
означает элемент спискаul
сid = "navbar"
Живой пример →
Горизонтальная панель навигации
Когда мы создаем горизонтальную панель навигации, главный вопрос заключается в том, как преобразовать базовый вертикальный список в горизонтальный. Это можно сделать двумя разными способами:
Использование дисплея
: встроенный
Мы можем использовать свойство CSS
display: inline;
, чтобы удалить разрыв строки до и после каждого элемента списка, потому что по умолчанию элементы списка имеют свойствоdisplay: block;
добавлено к ним.ul # navbar li { дисплей: встроенный; }
Живой пример →
Использование
float: слева
Другой способ создания горизонтальной панели навигации — это добавление
float: left;
CSS для всех элементов списка. Следовательно, они выстроятся в линию.Вот код CSS:
#navbar { тип-стиль-список: нет; маржа: 0; отступ: 0; переполнение: скрыто; цвет фона: #EEEEEE; } ul # navbar li { плыть налево; } ul # navbar li a { дисплей: блок; цвет: # 000000; font-weight: жирный; отступ: 8 пикселей 16 пикселей; текстовое оформление: нет; }
Ниже мы объяснили, почему мы использовали то, что использовали в приведенном выше коде CSS, начиная с элементов списка:
-
поплавок: левый;
→ Чтобы все элементы списка перемещались влево, отображая их в строке. -
переполнение: скрыто;
→ Теперь, когда все элементы списка имеют свойствоfloat: left
добавлено к ним, поэтому элементы списка больше не будут внутри спискаul
, в результате чего списокul
будет занимать минимальную высоту, которая в этом случай нулевой. Мы применили цвет фона, чтобы продемонстрировать это. Следовательно, здесь используется хакoverflow
. Мы не использовалиoverflow: auto;
, потому что он иногда добавляет полосу прокрутки, что нам не нужно. -
дисплей: блок;
→ Используя это свойство CSS, мы делаем всю область ссылок интерактивной, а не только текст ссылки. -
отступ: 8 пикселей 16 пикселей;
→ Мы добавили отступ8px 16px
, что означает, что пустое пространство8px
будет добавлено вверху и внизу ссылки, а пустое пространство16px
будет добавлено слева и справа . Мы добавляем отступы, чтобы наше меню навигации выглядело просторным и чистым.
border-bottom
ко всем элементам - , кроме
последний:
Пример
ул {тип-стиль-список: нет;
маржа: 0;
отступ: 0;
ширина: 60 пикселей;
}
ли
а
{
дисплей: блок;
}
Примеры вертикальной панели навигации
Создайте базовую вертикальную панель навигации с серым цветом фона и изменить цвет фона ссылок, когда пользователь наводит указатель мыши на их:
Пример
ul {list-style-type: none;
маржа: 0;
отступ: 0;
ширина: 200 пикселей;
цвет фона: # f1f1f1;
}
li a {
дисплей:
блокировать;
цвет: # 000;
отступ: 8 пикселей 16 пикселей;
текст-оформление: нет;
}
/ *
Изменить цвет ссылки при наведении * /
li a: hover {
цвет фона: # 555;
цвет: белый;
}
Активная / текущая ссылка для навигации
Добавьте «активный» класс к текущей ссылке, чтобы пользователь знал, на какой странице он находится:
Центральные ссылки и добавить границы
Добавьте text-align: center
к