Css меню стили: Горизонтальное меню на CSS
Содержание
CSS: меню «конфетти»
Меню «конфетти»
Разноцветное меню, которое вы видите ниже, — это просто элемент DIV с несколькими включёнными внутри него элементами P. Визуальный эффект объясняется тем фактом, что каждый элемент P спозиционирован индивидуально и имеет свой собственный шрифт и цвет. Лучше всего это работает с короткими текстами, потому что визуальный эффект основан на частичном наложении. Если текст слишком длинный, перекрывания будут создавать трудности для чтения.
Таблица стилей разрешает до 10 элементов в меню, в примере выше использованы 8. Вот исходный HTML-код для указанного выше примера:
<div> <p><a href="../../CSS/#news">Что нового?</a> <p><a href="../../CSS/#learn">Изучение CSS</a> <p><a href="../../CSS/#browsers">Браузеры и CSS</a> <p><a href="../../CSS/#editors">Средства для разработки</a> <p><a href="../../CSS/#specs">Спецификации</a> <p><a href="../../CSS/Test">Комплект тестов CSS1</a> <p><a href="/StyleSheets/Core">Основные стили W3C</a> <p><a href="http://jigsaw.w3.org/css-validator/">Проверка CSS</a> </div>
Обратите внимание на наличие класса «map» у элемента DIV, что превращает его в контейнер для меню, и на атрибуты ID у элементов P. Каждый элемент P должен иметь (отличающийся) идентификатор ID, названный p1, p2,… или p10. Необязательно использовать последовательные имена идентификаторов ID (как показано в примере), главное, чтобы они были уникальными и не повторялись. Вы можете использовать эти стили, скопировав их в свою таблицу стилей, или воспользоваться @import или элементом LINK, чтобы импортировать map.css прямо с сайта W3C: или
@import "http://www.w3.org/Style/map.css";
или
<link rel="stylesheet" href="http://www.w3.org/Style/map.css">
Объяснение таблицы стилей
Вот как работает эта таблица стилей. Таблица стилей начинается с определения элемента DIV, которому присвоен класс «map». Это создаёт пространство высотой в 190px для размещения содержимого элементов P. Каждому элементу с идентификаторами ID от p1 до p10 затем будут даны цвет и шрифт. Они также будут спозиционированы внутри пространства, созданного элементом DIV посредством свойства ‘margin’: отрицательный top margin сдвинет элемент вверх, а положительный bottom margin даст возможность следующему элементу отображаться снизу DIVа.
(Слабость этой таблицы в том, что все значения указаны в пикселях — px. Вы, возможно, захотите изменить это, заменив процентами, если ваш браузер достаточно хорошо поддерживает CSS)
DIV.map { /* Оставляем пространство для ссылок */ padding-top: 190px; margin-left: -2em; /* Адаптируйте к вашей странице... */ margin-right: -2em; /* Адаптируйте к вашей странице... */ margin-bottom: 4em; margin-top: 5em; clear: both; text-shadow: 0.2em 0.2em /* 0.2em */ silver } #p1, #p2, #p3, #p4, #p5, #p6, #p7, #p8, #p9, #p10 { white-space: nowrap } #p1, #p2, #p3, #p4, #p5, #p6, #p7, #p8, #p9, #p10 { text-indent: 0 } #p1 A, #p2 A, #p3 A, #p4 A, #p5 A, #p6 A, #p7 A, #p8 A, #p9 A, #p10 A { text-decoration: none } #p1, #p1 A {color: #DDD; font: 100px/1 Impact, Helvetica Narrow, sans-serif} #p2, #p2 A {color: #000; font: italic 40px/1 "Georgia", serif} #p3, #p3 A {color: #080; font: 40px/1 "Verdana", sans-serif} #p4, #p4 A {color: #37F; font: bold 40px/1 Courier New, Courier, monospace} #p5, #p5 A {color: #F73; font: bold 100px/1 "Verdana", sans-serif} #p6, #p6 A {color: #22A; font: bold 25px/1 "Verdana", sans-serif} #p7, #p7 A {color: #088; font: italic 80px/1 "Verdana", sans-serif} #p8, #p8 A {color: #088; font: italic 20px/1 "Verdana", sans-serif} #p9, #p9 A {color: #088; font: italic 20px/1 "Verdana", sans-serif} #p10, #p10 A {color: #F73; font: bold 60px/1 "Verdana", sans-serif} #p1 {text-align: right; margin: -185px 0 85px 0} /* top right */ #p2 {text-align: left; margin: -190px 0 150px 5%} /* top left */ #p3 {text-align: right; margin: -90px 35% 50px 0} /* center */ #p4 {text-align: right; margin: -95px 0 55px 0} /* center right */ #p5 {text-align: left; margin: -130px 0 30px 0} /* center left */ #p6 {text-align: left; margin: -40px 0 15px 35%} /* bottom center */ #p7 {text-align: right; margin: -80px 0 0px 0} /* bottom right */ #p8 {text-align: left; margin: -40px 0 20px 3%} /* bottom left */ #p9 {text-align: right; margin: -25px 0 5px 0} /* bottom right */ #p10 {text-align: left; margin: -130px 0 70px 0} /* center left */
Разумеется, вы можете изменить таблицу стилей, чтобы попробовать другие шрифты, цвета и иное позиционирование, или чтобы создать дополнительные стилевые правила для более, чем 10 элементов. Также обратите внимание на левое и правое поля элемента DIV: они определены отрицательными значениями, чтобы меню стало шире, чем обтекающий его текст. Но у вашей странице поля могут быть недостаточно широкими для этого, поэтому вам, возможно, придётся удалить эти правила из таблицы стилей.
Если вы попробуете этот стиль, вы можете заметить, что он не очень хорошо работает в Netscape 4. Это вина Netscape 4, конечно. Тем не менее, таблица стилей map-ns.css — идентична предыдущей и работает хорошо в этом браузере. Следующий приём в заголовке вашего HTML документа позволит браузеру Netscape версии 4 и выше адекватно исполнять CSS:
<link href="map-ns.css" rel="stylesheet" type="text/css"> <link href="map.css" rel="stylesheet" type="text/css" media="all">
Корректный обработчик CSS прочитает обе таблицы стилей, но правила во второй таблице переопределят правила из первой, так что кроме небольшой ненужной работы ничего не произойдет. Netscape 4, тем не менее, не будет загружать вторую таблицу стилей, потому что атрибут «media» для него не понятен.
Также, вы, возможно, захотите узнать, почему элементы позиционируются по отрицательному значению полей, в то время, как более подходящим решением может показаться использование свойств абсолютного позиционирования. Действительно, вы можете сделать тоже самое с ‘position’ и ‘left’ & ‘right’. Причина, по которой данная таблица стилей использует отступы в том, что такой метод работает в браузерах, которые поддерживают только CSS1.
Css боковое выпадающее меню
В сегодняшней статье я хотел бы рассказать, как создать на CSS2.1 и HTML выпадающее меню. Также я покажу один небольшой трюк, при помощи которого можно будет добавлять иконку «+» к элементам навигации в том случае, если в них скрыто выпадающее меню. Для этого мы воспользуемся псевдоэлементом :only-child .
Исходный код
Демо
Для начала мы создадим базовую структуру навигационного меню, состоящего из шести пунктов:
Далее нам нужно добавить базовые CSS-стили для HTML горизонтального меню. Я оставил комментарии к каждому блоку кода:
После применения стилей у нас должно получиться нечто вроде этого:
Чтобы добавить выпадающий список к какому-либо из элементов HTML меню, нам нужно добавить
- внутрь элемента
для пункта, в котором нужно скрыть выпадающий список:
Мы добавили новый неупорядоченный список с тремя пунктами списка внутрь второго элемента
, который отвечает за пункт меню WordPress . Обратите внимание на то, что мы добавили
- после анкорного тега ( ).
Теперь добавим CSS-стили , чтобы выпадающий список был скрыт по умолчанию, и появлялся, когда посетитель наводит курсор мыши на соответствующий родительский элемент HTML меню для сайта. После приведенного выше CSS-кода добавьте следующий фрагмент:
Если до этого момента вы все делали правильно, то при наведении курсора на пункт меню « WordPress » должны увидеть выпадающий список с тремя другими пунктами (« Themes », « Plugins », « Tutorials »):
Чтобы добавить выпадающие списки, состоящие из нескольких уровней, этот процесс нужно повторить. Определяем пункт меню, из которого нужно сделать выпадающий список, и добавляем новый
- между тегами .
Взгляните на приведенный ниже HTML-код , в котором мы добавляем второй уровень выпадающего списка к пункту меню « Tutorial », который находится внутри пункта « WordPress »:
Чтобы вертикальное меню HTML отображалось корректно, нужно добавить еще пару строк CSS кода :
Если все сделано правильно, у вас должно получиться нечто вроде этого:
Этот процесс можно повторять, и добавлять новые уровни. Но не следует добавлять их к последнему элементу выпадающего списка, так как я сделал это лишь для примера.
Добавляем индикатор выпадающего списка
Перед тем, как сделать выпадающее меню в HTML до конца, разберемся с индикатором, который указывает на наличие выпадающего списка, прикрепленного к тому или иному пункту меню (знак «+» ):
Для этого мы используем псевдоэлемент CSS3 (:only-child) . В данном случае он проверяет, имеются ли в тегах
родительского элемента другие элементы. Если нет, то знак плюса просто убирается, так как по умолчанию он присутствует рядом со всеми пунктами. Видите + возле пунктов WordPress и Tutorials ?
Значит, вы все сделали правильно.
В завершение
Многие для достижения подобного эффекта используют jQuery или другие библиотеки. Я считаю, что в этой статье приведен самый простой и легкий вариант. Но выбор за вами.
А как вы сделали меню на HTML ? Пожалуйста, расскажите об этом в комментариях.
Данная публикация представляет собой перевод статьи « How to Create a Pure CSS Dropdown Menu » , подготовленной дружной командой проекта Интернет-технологии.ру
В этом уроке мы покажем вам, как создавать боковое выпадающее меню для еще более простой навигации по сайту. Такое меню — популярная тенденция в современном веб-дизайне. На многих сайтах используется этот тип меню. С его помощью можно избавиться от хаоса на страницах проекта, сделать его более читаемым, сосредотачивая внимание пользователей на основном контенте.
Это прекрасный способ добиться минимализма без отвлекающих факторов. Сегодня создадим такое меню самостоятельно.
Чтобы создать меню навигации, давайте сначала ознакомимся с настройками:
Для начала необходимо загрузить Normalize.css и настроить стили браузера по умолчанию, убедиться, что меню выглядит одинаково во всех браузерах. Для отображения стрелки перед элементами меню с подпунктами будем использовать FontAwesome. Для переключения классов в меню загружаем jQuery и перемещаем весь пользовательский jQuery код в script.js. Последняя ссылка является основной таблицей для веб-проекта.
Иконка-гамбургер
Иконка-гамбургер является общим атрибутом навигации по сайту. Часто она создается при помощи иконочного шрифта, такого как FontAwesome, но в этом уроке мы добавим некоторую анимацию, а потому будем создавать ее с нуля. Наша иконка-гамбургер представляет собой тег span, содержащий три div класса, отображающийся в виде горизонтальных полос.
Стили выглядят следующим образом:
Иконка имеет фиксированное положение и не меняет его при прокрутке страницы. Также имеет z-index 15, а это значит, что она всегда будет поверх других элементов. Состоит из трех bars, каждый из которых разделяет другие стили. Поэтому мы переместим каждый bar в класс .menu-bar. Остальные стили перемещаем в отдельные классы. Магия происходит тогда, когда мы добавляем другой класс в тег span, который является открытым. Мы добавляем его с помощью jQuery следующим образом:
Для тех, кто не знаком с jQuery — мы инициализируем переменную с $toggleButton, которая содержит нашу иконку. Сохраняем ее в переменной без необходимости использования JavaScript. Затем мы создаем event listener, который учитывает клики по иконке. Каждый раз, когда пользователь кликает по иконке-гамбургеру, event listener запускает функцию toggleClass(), которая переключает класс .button-open.
Когда добавлен класс .button-open, мы можем использовать его для изменения способов отображения элементов. Мы используем CSS3 translate() и rotate() функции, чтобы верхняя и нижняя полосы вращались на 45 градусов, а средняя полоса сдвигалась вправо и исчезала. Вот какую анимацию можно настроить:
Выпадающее меню навигации
Теперь, когда у вас есть иконка-гамбургер, давайте сделаем ее полезной и создадим выпадающее меню при нажатии на нее. Вот как выглядит разметка меню:
Сейчас не будем подробно останавливаться на каждом стиле для этого меню, вместо этого сосредоточимся на нескольких важных моментах. Прежде всего, это div и класс .menu-wrap. Посмотрите на его стили:
Положение фиксированное, поэтому при прокрутке страницы меню всегда остается в одном положении. Высота 100% позволяет меню занимать все вертикальное пространство на странице. Обратите внимание, что в поле margin-left установлено отрицательное число, равное ширине меню. Это значит, что меню будет исчезать из окна просмотра. Чтобы сделать его снова видимым, мы создаем другой класс toggler с jQuery. Наш файл JavaScript будет выглядеть так:
Добавляем другую переменную $menuWrap, которая содержит оболочку меню. Используйте тот же обработчик событий, который мы создали ранее. Только на этот раз переключаем два класса: один для кнопки и один для оболочки меню. Значение левого поля класса .menu-show равно 0, это добавит эффект тени.
Подменю и ссылки
Вы можете заметить, что в одном из элементов списка есть класс .menu-item-has-children, который содержит подменю. Кроме того, сразу под ссылкой размещен тег span с классом .sidebar-menu-arrow.
span имеет ::after pseudo-element и содержит стрелку FontAwesome. По умолчанию подменю скрыто и будет видно только при нажатии на стрелку. Вот как мы это можем сделать с jQuery:
Когда мы нажимаем на стрелку, мы вызываем функцию, которая в свою очередь нацелена на следующий элемент сразу после span (в нашем случае это подменю) и делает его видимым. Функцию, которую мы используем — slideToggle. Она заставляет элемент появляться и исчезать. Функция в нашем примере имеет один параметр — длительность анимации.
Элементы меню в примере имеют hover-эффект. Он создается с использованием ::after pseudo-element. Код выглядит так:
::after pseudo-element содержит элемент block level внизу каждой ссылки с полной шириной и высотой 0.15em. Выглядит все это как подчеркивание. Особенность заключается в том, что мы не просто применяем цвет фона к линии, мы используем функцию linear-gradient() на фоновом изображении. Хотя эта функция предназначена для создания цветовых градиентов, мы можем менять цвет, указав нужные проценты.
Половина лини здесь прозрачная, а вторая половина — желтая. Сделав размер фона 200%, мы удваиваем ширину нашего блока. Теперь прозрачная часть занимает всю ширину ссылки, а желтая часть перемещается влево и становится незаметной. Мы меняем положение фона при наведении на -100%. Теперь желтая часть становится видимой, а прозрачная — скрыта.
Вместо прозрачной части вы можете использовать любой другой цвет. Вы также можете поэкспериментировать с градиентами.
Каждый из рассмотренных нами элементов работает как единое целое. Вы можете создать такое меню, используя любой дизайн сайта из коллекции TemplateMonster. Как видите, сделать это проще, чем можно себе представить. Удачи в создании профессиональных и удобных для пользователей сайтов!
Если вы попали на этот сайт случайно или искали другое выпадающее меню, советую перейти по ссылке, там собранно множество разных меню для сайта.
Вертикальных менюшек для сайтов довольно много, в этом уроке я покажу вам только вертикальное выпадающее меню на CSS при наведении с выпадашкой вправо и влево, а также многоуровневые выпадающие меню. Другие варианты вертикальных меню для сайта будут описаны в следующих уроках. И так преступим.
Навигация по странице:
В качестве вступления, думаю стоит рассказать принцип работы выпадашек на CSS.
У всех браузеров, которые запущенные с ПК или ноутбука, в CSS доступно свойство :hover (тут я малость неправ, это псевдокласс 🙂 ) на базе которого можно построить практически любое вертикальное выпадающее меню.
А что же делать с мобильными браузерами? — или на планшетах спросите вы.
К счастью, разработчики мобильных браузеров предусмотрели (к сожалению не везде) возможность срабатывания псевдокласса :hover при первом нажатии на ссылку, если оно описано в CSS. Благодаря этим стараниям, большинство пользователей сможет увидеть ваше вертикальное выпадающее меню CSS.
Пара слов о преимуществе выпадающих меню:
- можно вместить очень длинные меню в ограниченное пространство;
- дизайн становится более изящным;
- частично улучшаются поведенческие факторы.
Вертикальное выпадающее меню вправо
к менюПредставляю вашему вниманию первый пример: простое вертикальное выпадающее меню вправо при наведении.
Написание менюшки мы начнем с html кода и сделаем его универсальным на списках, вариант ответа идентичный тому, что возвращает wordpress.
Html для вертикального меню
Думаю в плане понимания html у вас не возникнет никаких сложностей, типичные списки с тегами ul и li. Смотрим код:
Меню для сайта на списках: у некоторых пунктов есть выпадающие блоки, у некоторых нет. Все предельно просто, думаю никаких пояснений не нужно.
Вертикальное выпадающее меню CSS
к менюСо стилями CSS вопрос немного по сложнее. Я вам покажу код только самого меню, а остальные стили вы сможете посмотреть когда скачаете пример.
Вот эта строчка CSS
Посмотреть что у нас получилось в этом примере можно на скине:
Как работает вертикальное выпадающее меню css вы можете увидеть в режиме демо ниже, или скачав пример:
Вот такой не сложный пример выпадающего меню у меня получился.
Это еще не конец, идем дальше.
Предположим, что вам нужно сделать выпадающее меню при наведении с выпадашкой влево. На основе примера выпадашки вправо мы сейчас ее и реализуем.
Вертикальное выпадающее меню влево на CSS
к менюХтмл код оставляем прежним, его нет смысла менять. Разве что в самом примере, мне придется поменять местами левый блок и правый, для наглядности примера. (увидите скачав пример в конце)
Стили CSS будут немножко отличаться, хотя не кардинально. В моем простом примере достаточно исправить одно значение. В комментариях, я помечу его.
Для более сложных меню, вам потребуется сделать немножко больше правок. Смотрим стили:
Вот и все. У нас получилось вот такое меню. Слева кликабельный скин, справа демо и ссылка на скачивание примера:
CSS стили изменить на сайте просто и быстро
На чтение 4 мин.
Привет! Хотите изменить на своём сайте CSS стили? Думаете что это сложно? Уделите немного внимания данной записи и вы узнаете как можно очень просто менять CSS стили на любом сайте WordPress! Вам не нужно быть продвинутым вебмастером, изучать css стили и прочие тонкости, всё гораздо проще. Всё очень просто и быстро! Смотрите далее!
Как изменить CSS стили на сайте WordPress
Зайдите на свой сайт, нажмите правой кнопкой мыши по любому элементу сайта который вы хотите изменить. В открывшемся окне нажмите на вкладку — Просмотреть код. В примере мы изменим цвет названия страниц в меню сайта. Таким образом можно будет изменять абсолютно любые стили сайта.
Далее, в правой части экрана у вас откроется окно с исходным кодом элемента сайта, для которого вы открыли код. Здесь нас интересуют стили, они будут отображаться в окне на вкладке — Styles. По названию стилей и по цвету, можно сразу определить какая часть CSS стиля нам нужно для её изменения. На скриншоте показано отрывок CSS стиля с названием — main-menu и белым цветом (как меню на сайте), то что нам надо.
Есть два варианта изменения CSS стилей.
1 вариант с помощью плагина
Первый вариант очень хорошо подойдёт для всех сайтов на CMS WordPress. После того как мы нашли нужные нам CSS стили, вам необходимо установить на свой сайт плагин — Simple Custom CSS. Установить данный плагин можно прямо из админ-панели wordpress. Перейдите на страницу: Плагины — Добавить новый, введите название плагина в форму поиска, нажмите Enter, установите и активируйте плагин.
Далее, копируем нужную нам часть css стилей из окна просмотра кода. Обязательно нужно скопировать всю часть, от названия стиля и до закрывающей скобки (как на скриншоте ниже).
Далее, переходим на страницу плагина Simple Custom CSS. Перейдите на страницу: Внешний вид — Custom CSS. Вставляем в поле скопированную часть css кода, меняем стили (на скриншоте ниже уже изменён цвет) и жмём на кнопку — Update Custom CSS.
Далее, переходим на сайт и смотрим, цвет страниц в меню изменился на чёрный, то есть так как и указано в наших css стилях. HTML код чёрного цвета — #000000.
Точно также меняются и все остальные стили, размер, цвет, шрифт, бордюр, набивка, рамка и т.д. Открываете любой справочник с обозначениями CSS стилей и меняете стили так как вам надо.
Внимание! CSS стили лучше переносить непосредственно на WordPress. Внешний вид — Настроить — Дополнительные стили. То есть, плагин Simple Custom CSS, можно не использовать!
2 вариант меняем стили в css файлах сайта
Знать бы где находятся нужные нам CSS стили, а поменять их не так-то и сложно, поменял значения и всё готово. Как раз с помощью просмотра кода элемента в окне браузера вы можете очень просто узнать где находятся нужные вам CSS стили. Снова зайдите на свой сайт, нажмите правой кнопкой мыши по любому элементу вашего сайта, в открывшемся окне нажмите на вкладку — Просмотреть код.
В окне просмотра кода, возле каждого css стиля, с правой стороны будет отображаться ссылка, наведите на неё курсор мыши, у вас появится подсказка с расположением данного стиля. То есть, вам покажут в какой именно папке и файле находится данный css стиль, который вам нужно изменить.
Теперь вам лишь останется зайти в свою корневую директорию вашего сайта на хостинге, найти данный файл, следуя пути указанному в подсказке и изменить CSS стили. Как видите если разобраться, то всё очень просто!
Создание меню на чистом CSS
Как сделать меню для сайта на чистом CSS?
Доброго времени суток, друзья. Частой задачей при разработки сайта или приложения является создание меню с целью лучшей навигации. Есть несколько путей решения этой задачи: либо с помощью CSS, либо с использованием JS. В данной статье я хочу показать вам путь решения этой задачи по средствам только одного CSS. Приступим.
Видео по теме:
Создание HTML макета
Для начала нам потребуется создать саму верстку по средам HTML тегов. Давайте же сделаем это.
<nav>
<div>
<label for="menuToggle">Меню</label>
<input type="checkbox">
<ul>
<li><a href="#">Главная</a></li>
<li><a href="#">Страница1</a></li>
<li><a href="#">Страница2</a></li>
<li><a href="#">Страница3</a></li>
<li><a href="#">О нас</a></li>
</ul>
</div>
</nav>
<section>
<div>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Facilis
autem consequatur eum facere neque. Tenetur laboriosam
repellendus neque fuga, velit, totam, est, aspernatur
sunt sapiente earum quo beatae. Fuga, officia.
</div>
</section>
Добавление основных CSS стилей
html{
height: 100%;
font-size: 18px;
}
.menu{
list-style-type: none;
margin: 0;
padding: 0;
}
nav{
background: #4c3167;
}
.menu li{
float: left;
}
.menu li a {
display: inline-block;
padding: 10px 15px;
color: #fff;
text-decoration: none;
}
section{
padding-top: 10px;
}
.wrapper{
max-width: 1024px;
padding: 0 30px;
margin: 0 auto;
}
.b-content{
height: 100%;
background: #c1aaff;
color: #000;
}
.menuToggle{
padding: 10px 15px;
cursor: pointer;
color: #fff;
display: none;
}
body{
height: 100%;
}
nav input{
display: none;
}
nav label{
padding: 10px 15px;
color: #fff;
display: none;
}
Добавление стилей для мобильной версии
@media ( max-width: 670px) {
nav label{
display: block;
}
#menuToggle:checked + .menu{
display: block;
position: absolute;
background: #4c3167;
width: 100%;
margin-left: -30px;
padding-left: 28px;
}
.menu li{
float: none;
}
.menu{
display: none;
}
}
Это все что нужно для для создания меню на чистом CSS. Давайте поподробнее рассмотрим как это все работает. У нас есть обычный список в котором мы храним меню. Мы добавляем checkbox с помощью которого мы будем хранить состояния и тег <label> который будет у нас в роли кнопки меню на мобильных устройствах.
<label for="menuToggle">Меню</label>
<input type="checkbox">
Скрываем сам checkbox и оставляем смену состояния только тегу <label>.
Теперь добавляем стили которые будут показывать блок меню если мы кликае по тегу <label> и скрывать его по второму клику.
#menuToggle:checked + .menu{
display: block;
position: absolute;
background: #4c3167;
width: 100%;
margin-left: -30px;
padding-left: 28px;
}
Данная статья подошла к концу. Тут я оставил для вас исходник на GitHub. Сегодня мы рассмотрели пример того как на нативном CSS c использование checkbox можно создать полноценно адаптивное меню для мобильных устройств. C вами был Corvax. Да новых встреч!
Подписывайтесь на наш канал в Telegram и на YouTube для получения самой последней и актуальной информации.
Как сделать горизонтальное меню на CSS
Простое горизонтальное меню
HTML
Cписку меню присвоен стилевой идентификатор, например, [glavnoeMenu] — уникальное имя, которое используется для изменения его стиля.
<ul>
<li><a title="" href="#">Пункт один</a></li>
<li><a title="" href="#">Пункт два</a></li>
<li><a title="" href="#">Пункт три</a></li>
<li><a title="" href="#">Пункт четыре</a></li>
<li><a title="" href="#">Пункт пять</a></li>
</ul>
CSS
#glavnoeMenu,
#glavnoeMenu ul
{
list-style: none; /* Убираем маркеры списка меню */
}
#glavnoeMenu
{
float: left; /* Выравниваем по левой стороне */
}
#glavnoeMenu > li
{
float: left; /* Выравниваем по левой стороне */
}
#glavnoeMenu li a
{
display: block; /* Меню — блочный элемент */
margin: 0 1em; /* Отделяем пункты меню отступами слева-справа */
padding: 0; /* Нулевые значения полей вокруг ссылки */
}
Горизонтальное меню с вложенным списком подпунктов
1. Создаем HTML структуру меню — список пунктов с ссылками. Один из пунктов основного меню, например, третий, имеет вложенный список подпунктов.
Основному списку присвоен стилевой идентификатор [glavnoeMenu] — уникальное имя, которое используется для изменения его стиля.
HTML
<ul>
<li><a title="" href="#">Пункт один</a></li>
<li><a title="" href="#">Пункт два</a></li>
<li><a title="" href="#">Пункт три</a>
<ul>
<li><a title="" href="#">Подпункт один</a></li>
<li><a title="" href="#">Подпункт два</a></li>
<li><a title="" href="#">Подпункт три</a></li>
</ul>
</li>
<li><a title="" href="#">Пункт четыре</a></li>
<li><a title="" href="#">Пункт пять</a></li>
</ul>
CSS
#glavnoeMenu,
#glavnoeMenu ul
{
list-style: none; /* Убираем маркеры списка меню */
}
#glavnoeMenu
{
float: left; /* Выравниваем по левой стороне */
}
#glavnoeMenu > li
{
float: left; /* Выравниваем по левой стороне */
}
#glavnoeMenu li a
{
display: block; /* Меню — блочный элемент */
margin: 0 1em; /* Отделяем пункты меню отступами слева-справа */
padding: 0; /* Нулевые значения полей вокруг ссылки */
}
#glavnoeMenu li ul
{
background: none repeat scroll 0 0 #FFFFFF; /* Фон списка с
подпунктами, белый */
display: none; /* Вложенный список с подпунктами не отображается */
position: absolute; /* Имеет абсолютное позиционирование */
z-index: 9999999; /* Список с подпунктами перекрывает
другие объекты веб-страницы */
}
#glavnoeMenu li ul li a
{
margin: 0; /* Нулевой отступ */
padding: 0.3em 1em; /* Внутренние поля ссылки подпункта*/
}
#glavnoeMenu li:hover ul
{
display: block; /* Отображение списка с
подпунктами при наведении — блочный элемент */
margin: 0;
padding: 0.1em 0;
}
Дальнейшее оформление — по вкусу.
Демонстрация меню
В случаях размещения меню слева или справа страницы, отступ от края (левого или правого) может нарушить сетку. Для исправления необходимо, в левом варианте, присвоить класс [first] первому пункту и [last] последнему в правом варианте. В стили добавить описание варианта класса:
#glavnoeMenu li a.first
{
display: block;
margin: 0 1em 0 0; /* Убираем левый отступ */
padding: 0;
}
или
#glavnoeMenu li a.last
{
display: block;
margin: 0 0 0 1em; /* Убираем правый отступ */
padding: 0;
}
Можно ограничить ширину блока вложенного списка. Для этого нужно прописать стиль, указав точную ширину, например 150px.
#glavnoeMenu ul li a
{
width: 150px;
}
Плавающее меню на сайте с помощью css
Думаю, многие видели на современных сайтах верхнее меню, которое при прокрутки мыши прилипает (фиксируется) сверху экрана. Рассмотрим способ реализации данной задачи.
Проще всего сделать такое меню с помощью обычного css.
Рассмотрим на живом примере. Допустим у нас такая структура меню (горизонтальное, сверху экрана).
<div><ul>
<li><a href=»#»>Главная</a></li>
<li><a href=»#»>Joolma</a></li>
<li><a href=»#»>WordPress</a></li>
<li><a href=»#»>PHP</a></li>
</ul>
</div>
Для того, чтобы оно автоматически прилипало к верху страницы достаточно добавить стиль:
<style>.menuskived {position:fixed;top:0px;left:0px; width:100%;padding:5px 0;}</style>
position:fixed; — позволяет прокручивать меню сверху страницы
top:0px; — указывает, что меню начинается с самого верха страницы.
left:0px; — сдвигает меню в левую часть экрана
Таким не хитрым методом мы можем зафиксировать любое меню сверху экрана.
Полный код примера со стилями:
<style>
.menuskived {position:fixed;top:0px;left:0px;width:100%;padding:5px 0;text-transform: uppercase; text-align: center; line-height: 50px; background: #69c; }
.menuskived ul {padding:0; margin:0;}
.menuskived li{display: inline;}
.menuskived li a {padding: 5px 20px; color: #fff;text-decoration: none;}
</style>
<div><ul>
<li><a href=»#»>Главная</a></li>
<li><a href=»#»>Joolma</a></li>
<li><a href=»#»>WordPress</a></li>
<li><a href=»#»>PHP</a></li>
</ul>
</div>
Останется только сдвинуть основной контент сайта на величину, равную высоте меню. Так как если после такого меню вывести какой-либо контент, то меню будет закрывать его. Чтобы избежать данной проблемы поставьте отступ сверху на body или div с вашим контентом. Например так: body {margin-top: 100px;}.
На заметку.
Свойство fixed часто используется для создания плавающего фона. Например, когда нужно, чтобы при прокрутки страницы фон оставался на месте, а сайт прокручивался. Для этого вы можете использовать следующий стиль:
<style>
background: url(‘ссылка_на_картинку_фона’) fixed no-repeat;
background-size: cover;
</style>
Читайте также
blogprogram.ru | 2016-11-21 | Плавающее меню на сайте с помощью css | Думаю, многие видели на современных сайтах верхнее меню, которое при прокрутки мыши прилипает (фиксируется) сверху экрана. Рассмотрим способ реализаци | https://blogprogram.ru/wp-content/uploads/2016/09/32131231-131×131.jpg
css раскрывающееся вертикальное меню — ComputerMaker.info
Автор admin На чтение 5 мин.
Вертикальное плавно раскрывающееся меню аккордеон для сайта с подпунктами основного раздела на HTML5 + CSS3 + JS
Вертикальное раскрывающееся меню HTML + CSS + JS
Вертикальное раскрывающееся меню аккордеон один из способ сократить объем информации на странице, без потери содержания. Каждый из разделов содержит в свернутом виде подпункты основного. Преимущества таких меню заключается в том, что при клике на раздел меню, раскрываются подпункты основного раздела. При переходе на другой основной раздел, разворачиваются подпункты следующего.
Плавность раскрывающихся элементов подменю придадут красоту и стилизацию, поэтому будем использовать css свойство transition. Изначально все подпункты меню будут свернуты, кроме основного раздела.
Все подпункты меню свернуты Все подпункты меню развернуты Второй подпункт меню развернут. Нумерация идентификаторов начинается с 0 Два подпункта меню развернуты
Если вы попали на этот сайт случайно или искали другое выпадающее меню, советую перейти по ссылке, там собранно множество разных меню для сайта.
Вертикальных менюшек для сайтов довольно много, в этом уроке я покажу вам только вертикальное выпадающее меню на CSS при наведении с выпадашкой вправо и влево, а также многоуровневые выпадающие меню. Другие варианты вертикальных меню для сайта будут описаны в следующих уроках. И так преступим.
Навигация по странице:
В качестве вступления, думаю стоит рассказать принцип работы выпадашек на CSS.
У всех браузеров, которые запущенные с ПК или ноутбука, в CSS доступно свойство :hover (тут я малость неправ, это псевдокласс ) на базе которого можно построить практически любое вертикальное выпадающее меню.
А что же делать с мобильными браузерами? — или на планшетах спросите вы.
К счастью, разработчики мобильных браузеров предусмотрели (к сожалению не везде) возможность срабатывания псевдокласса :hover при первом нажатии на ссылку, если оно описано в CSS. Благодаря этим стараниям, большинство пользователей сможет увидеть ваше вертикальное выпадающее меню CSS.
Пара слов о преимуществе выпадающих меню:
- можно вместить очень длинные меню в ограниченное пространство;
- дизайн становится более изящным;
- частично улучшаются поведенческие факторы.
Вертикальное выпадающее меню вправо
к менюПредставляю вашему вниманию первый пример: простое вертикальное выпадающее меню вправо при наведении.
Написание менюшки мы начнем с html кода и сделаем его универсальным на списках, вариант ответа идентичный тому, что возвращает wordpress.
Html для вертикального меню
Думаю в плане понимания html у вас не возникнет никаких сложностей, типичные списки с тегами ul и li. Смотрим код:
Меню для сайта на списках: у некоторых пунктов есть выпадающие блоки, у некоторых нет. Все предельно просто, думаю никаких пояснений не нужно.
Вертикальное выпадающее меню CSS
к менюСо стилями CSS вопрос немного по сложнее. Я вам покажу код только самого меню, а остальные стили вы сможете посмотреть когда скачаете пример.
Вот эта строчка CSS
Посмотреть что у нас получилось в этом примере можно на скине:
Как работает вертикальное выпадающее меню css вы можете увидеть в режиме демо ниже, или скачав пример:
Вот такой не сложный пример выпадающего меню у меня получился.
Это еще не конец, идем дальше.
Предположим, что вам нужно сделать выпадающее меню при наведении с выпадашкой влево. На основе примера выпадашки вправо мы сейчас ее и реализуем.
Вертикальное выпадающее меню влево на CSS
к менюХтмл код оставляем прежним, его нет смысла менять. Разве что в самом примере, мне придется поменять местами левый блок и правый, для наглядности примера. (увидите скачав пример в конце)
Стили CSS будут немножко отличаться, хотя не кардинально. В моем простом примере достаточно исправить одно значение. В комментариях, я помечу его.
Для более сложных меню, вам потребуется сделать немножко больше правок. Смотрим стили:
Вот и все. У нас получилось вот такое меню. Слева кликабельный скин, справа демо и ссылка на скачивание примера:
Вертикальное меню делается на основе списка, маркированного или нумерованного. По умолчанию все элементы списка
. располагаются вертикально, занимая по ширине всю ширину элемента контейнера
, который в свою очередь занимает всю ширину его блока-контейнера.
Элементы списка
. могут содержать не только ссылки, но также заголовки, иконки, картинки. С помощью вертикального меню можно оформлять комментарии на сайте, список категорий и т.д.
1. Вертикальное меню с заголовком
Простой элегантный вариант оформления. Подходит для стилизации категорий на сайте. При наведении элемент списка меняет цвет ссылки.
2. Вертикальное меню в стиле «схема метро»
Интересное решение для оформления вертикального меню, предусмотрено добавление вложенных меню. «Ветка метро» — левая граница списка, маркеры генерируются перед каждой ссылкой.
3. Вертикальное меню с эффектами при наведении
Иконка и фоновая заливка, проявляющиеся при наведении на элемент списка, помогут разнообразить дизайн элементов вертикального меню.
4. Вертикальное меню с иконками
Иконки в меню создают визуальный якорь, дополняя словесное описание каждой категории. Для отображения иконок нужно подключить шрифт Awesome. Вы также можете использовать любой другой иконочный шрифт или иконки-картинки.
5. Вертикальное меню с картинками
Данный пример можно использовать для оформления блоков с новинками, похожими товарами, и т.п. сайте интернет-магазина.
Стиль простой панели навигации по меню
Для новичков в CSS панель навигации — это то, с чем вы рано или поздно столкнетесь. Это первая публикация из серии руководств по основному программированию, которые я делаю в связи с перезагрузкой моего канала YouTube.
Я писатель по силе, но я также хочу научиться лучше объяснять вещи устно. Это часть описания видео ниже. Не забудьте поставить лайк и подписаться 😉
Большинство навигационных панелей, которые вы встретите, представлены в виде списка.Однако списки по умолчанию обычно уродливы. В этом уроке мы собираемся превратить неупорядоченный элемент списка в простую и визуально приятную горизонтальную панель навигации.
Во-первых, давайте начнем с нашего неупорядоченного списка:
Вот как это выглядит сейчас:
Короче говоря, это довольно простой Интернет 1980-х годов.Так как же перейти от приведенного выше к снимку экрана ниже?
Во-первых, начните с нанесения контуров на все ваши элементы, чтобы вы точно знали, на что нацелен ваш CSS.
ul {border: solid 1px black;}
li {border: solid 1px green;}
a {border: solid 1px red;}
Теперь панель меню навигации выглядит примерно так:
Да. Это все еще некрасиво. Но мы приближаемся.
Следующим шагом будет преобразование элементов li
из области блока по умолчанию
в область встроенного блока
.Блок , область действия
заставляет элемент занимать всю ширину страницы. Мы хотим, чтобы каждый из элементов li
выстраивался рядом друг с другом, поэтому мы используем встроенный блок
.
Вот новый CSS:
ul {
граница: сплошная черная 1px;
}
li {
граница: сплошная зеленая 1px;
дисплей: встроенный блок;
}
a {
граница: сплошная красная 1px;
}
Вот как это выглядит:
Да. Я знаю. Это все еще некрасиво, но, по крайней мере, сейчас все как-то в правильном положении.Следующий шаг — избавиться от пробелов перед Home
. Этот интервал вызван настройками по умолчанию padding
, которые есть во всех списках. Чтобы избавиться от заполнения, мы можем сделать это, установив padding
на 0
в ul
.
Вот как выглядит CSS сейчас:
ul {
граница: сплошная черная 1px;
отступ: 0;
}
li {
граница: сплошная зеленая 1px;
дисплей: встроенный блок;
}
a {
граница: сплошная красная 1px;
}
Вот как выглядит ваша панель навигации по меню:
Панель навигации по меню выглядит слишком тонкой.Давайте сделаем его немного больше. Для этого мы можем поставить прокладку на li
. Однако наша интерактивная область остается небольшой и может немного раздражать пользователя.
Если мы поместим отступ на li
, интерактивной областью будет только то, что находится в областях с красной рамкой.
Однако, если мы переместим padding в селектор a
, мы получим что-то вроде этого:
Это создает проблему, потому что ваш элемент контейнера (то есть ваш ul
) не расширяется для размещения отступа.Это связано с тем, что для и
по умолчанию установлено значение inline
— это означает, что отступы и поля не влияют на окружающую область, как бы сильно вы этого не хотели.
Например, вот абзац со строчным и
, на котором есть отступы. Отступ влияет только на стороны, но создает перекрытие текста для настроек верхний
и нижний
.
Чтобы исправить проблему перекрытия для нашей панели меню навигации, мы можем переопределить значение по умолчанию display: block
.
Вот новый CSS:
ul {
граница: сплошная черная 1px;
отступ: 0;
}
li {
граница: сплошная зеленая 1px;
дисплей: встроенный блок;
}
a {
граница: сплошная красная 1px;
дисплей: блок;
отступ: 10 пикселей;
}
Вот как выглядит панель навигации по меню с дисплеем : блок
применен к селектору и
.
Теперь, когда мы разместили детали в нужном месте, пришло время сделать их красивыми.
Во-первых, давайте удалим все границы и поместим красивый черный фон на панель навигации меню.
ул {
отступ: 0;
фон: черный;
}
li {
дисплей: встроенный блок;
}
a {
дисплей: блок;
отступ: 10 пикселей;
}
Вот как это выглядит:
Цветовая схема выглядит немного странно, поэтому давайте изменим ее на более контрастную и удалим подчеркивание в ссылках.
ул {
отступ: 0;
фон: черный;
}
li {
дисплей: встроенный блок;
}
a {
дисплей: блок;
отступ: 10 пикселей;
цвет белый;
текстовое оформление: нет;
}
Вот как это выглядит сейчас:
Выглядит немного лучше, но шрифт можно обновить.В настоящее время это шрифт с засечками. Давайте заменим его шрифтом без засечек. Мы можем сделать это на уровне ul
, чтобы он охватил все, что находится внутри нашей панели навигации по меню. Технически вы можете сделать это на и
, но если у вас в будущем будет вложение, оно может быть применено некорректно.
Вот код CSS:
ul {
отступ: 0;
фон: черный;
семейство шрифтов: Arial, без засечек;
}
li {
дисплей: встроенный блок;
}
a {
дисплей: блок;
отступ: 10 пикселей;
цвет белый;
текстовое оформление: нет;
}
Arial
— выбранный шрифт, без засечек
в качестве резервного по умолчанию, если Arial
недоступен на устройстве пользователя.
Давайте сделаем font-size
немного меньше и сделаем все заглавными, чтобы он выглядел более профессионально.
ул {
отступ: 0;
фон: черный;
семейство шрифтов: Arial, без засечек;
размер шрифта: 12 пикселей;
текст-преобразование: прописные буквы;
}
li {
дисплей: встроенный блок;
}
a {
дисплей: блок;
отступ: 10 пикселей;
цвет белый;
текстовое оформление: нет;
}
И вот окончательный результат:
Вот и все.
А пока спасибо за чтение (и просмотр).
Стилизация панели навигации с помощью CSS • Код в Интернете
Панели навигации можно найти практически на любом веб-сайте в Интернете. Узнайте, как кодировать и стилизовать один в этой статье!
Конечный продукт
Вот что мы будем делать сегодня:
Здесь вы можете увидеть живую демонстрацию.
Терминология
Лол, это звучит как начало юридического соглашения 😂
Для целей этой статьи панель навигации (панель навигации) — это то же самое, что и заголовок.Я буду использовать термин «навигационная панель» в этой статье, но просто знаю, что они в основном одинаковы.
Начало работы
Я рекомендую вам следовать каждому из моих руководств — это действительно поможет вам быстрее изучить и понять концепции. Программировать будет интересно, особенно в подобных уроках.
Для начала создайте новую папку проекта и создайте внутри пустые файлы index.html
и style.css
. Пойдем и заправим их!
HTML
Как вы знаете, HTML — это начало любого веб-сайта.Добавьте в файл index.html
следующее:
Панель навигации DEMO
<заголовок>
<основной>
Lorem ipsum dolor sit amet, conctetur adipiscing elit.In consquat libero eget magna Commodo, quis pharetra tellus pretium. Sed viverra ante in mauris finibus dapibus. Maecenas congue dapibus nulla, eu gravida orci consquat eu. Phasellus nec nunc malesuada, aliquam massa ac, accumsan metus. Fusce sed dignissim lectus. Nunc elit tellus, sollicitudin ac accumsan ut, egestas et dui. Maecenas aliquam est a ligula scelerisque, в aliquam neque sodales. Nullam condimentum euismod dictum. Curabitur non ex elementum, pretium enim ut, ornare ipsum.
Внутри тела у нас есть заголовок и элементы навигации.Если вы не знакомы с этой структурой панели навигации в HTML, прочтите эту статью.
Под заголовком у нас есть фиктивный текст внутри элемента
. Это сделано для того, чтобы мы могли видеть проблемы, которые возникнут позже в этом руководстве.
Откройте файл index.html
в браузере — на этом этапе он должен выглядеть так:
Обратите внимание, что вам, вероятно, придется прокрутить вниз, если только вы не сильно уменьшите масштаб, потому что наше изображение огромно!
Время для нашего CSS…
Базовый CSS
Во-первых, наше изображение слишком велико.Давайте уменьшим его до высоты 80px
— это будет высота нашей навигационной панели. Добавьте в файл style.css
следующее:
header img {
высота: 80 пикселей;
}
Результат:
Уф, теперь я могу дышать 😅
Теперь давайте настроим наш стиль, чтобы мы могли видеть, что происходит. Прежде всего, мы хотим иметь возможность прокрутки — мы можем сделать это, установив высоту
на 125vh
(высота области просмотра).Мы хотим, чтобы мог видеть при прокрутке вниз, и мы можем сделать это, добавив фоновое изображение
. Пока мы занимаемся этим, давайте установим наш шрифт на без засечек
, чтобы он не выглядел так ужасно. Вот код CSS:
header img {
высота: 80 пикселей;
}
тело {
высота: 125vh;
фоновое изображение: url ('https://codetheweb.blog/assets/img/posts/style-a-navigation-bar-css/background.jpg');
размер фона: обложка;
семейство шрифтов: без засечек;
}
Еще одна вещь, давайте добавим цвет
к нашему
, чтобы мы могли лучше видеть фиктивный текст:
header img {
высота: 80 пикселей;
}
тело {
высота: 125vh;
background-image: url ('https: // codetheweb.blog / assets / img / posts / style-a-navigation-bar-css / background.jpg ');
размер фона: обложка;
семейство шрифтов: без засечек;
}
главный {
цвет белый;
}
Вот результат всего этого:
Не беспокойтесь об изменении цвета ссылок, потому что мы все равно будем стилизовать их позже.
Размещение навигационной панели
Хорошо, теперь наш веб-сайт выглядит нормально — но не наша навигационная панель! Он по-прежнему выглядит как список, потому что всякий раз, когда вы создаете панель навигации, она должна иметь определенную структуру (та, которая содержит
- ).Это связано с тем, что поисковым роботам легче ориентироваться, и вы также понравитесь Google 😉
- имеют тип
display
для элемента спискаinline
, маркеры исчезнут.Вот результат:
Однако наши ссылки теперь идут в нижнюю часть навигационной панели! Мы можем заставить их переходить в верхнюю часть навигационной панели, присвоив нашему элементу
свойство display
свойстваflex
:header img { высота: 80 пикселей; } тело { высота: 125vh; фоновое изображение: url ('https://codetheweb.blog/assets/img/posts/style-a-navigation-bar-css/background.jpg'); размер фона: обложка; семейство шрифтов: без засечек; маржа сверху: 80 пикселей; отступ: 30 пикселей; } главный { цвет белый; } header { цвет фона: белый; положение: фиксированное; верх: 0; слева: 0; справа: 0; высота: 80 пикселей; дисплей: гибкий; } header * { дисплей: встроенный; }
Результат:
Однако текст по-прежнему не выровнен по вертикали по середине панели навигации.Мы можем вертикально выровнять наши элементы на панели навигации, используя
align-items: center
. Если вы не знаете оdisplay: flex
илиalign-items: center
, ознакомьтесь с моим руководством по flexbox. Вот код CSS:header img { высота: 80 пикселей; } тело { высота: 125vh; фоновое изображение: url ('https://codetheweb.blog/assets/img/posts/style-a-navigation-bar-css/background.jpg'); размер фона: обложка; семейство шрифтов: без засечек; маржа сверху: 80 пикселей; отступ: 30 пикселей; } главный { цвет белый; } header { цвет фона: белый; положение: фиксированное; верх: 0; слева: 0; справа: 0; высота: 80 пикселей; дисплей: гибкий; align-items: center; } header * { дисплей: встроенный; }
Результат:
Тем не менее, все ссылки на панели навигации очень сжаты вместе - мы можем выделить их больше, задав им поле
, свойство
:header img { высота: 80 пикселей; } тело { высота: 125vh; background-image: url ('https: // codetheweb.blog / assets / img / posts / style-a-navigation-bar-css / background.jpg '); размер фона: обложка; семейство шрифтов: без засечек; маржа сверху: 80 пикселей; отступ: 30 пикселей; } главный { цвет белый; } header { цвет фона: белый; положение: фиксированное; верх: 0; слева: 0; справа: 0; высота: 80 пикселей; дисплей: гибкий; align-items: center; } header * { дисплей: встроенный; } header li { маржа: 20 пикселей; }
Результат:
Так выглядит лучше! Теперь, когда элементы нашей навигационной панели расположены, пришло время придать им несколько стилей! Мы хотим убрать уродливые стили ссылок по умолчанию, поэтому давайте продолжим и сделаем это - мы можем установить цвет
с
начерный
и текстовое оформлениес
набез
(обычно это будетподчеркивание
) .Вот код CSS:header img { высота: 80 пикселей; } тело { высота: 125vh; фоновое изображение: url ('https://codetheweb.blog/assets/img/posts/style-a-navigation-bar-css/background.jpg'); размер фона: обложка; семейство шрифтов: без засечек; маржа сверху: 80 пикселей; отступ: 30 пикселей; } главный { цвет белый; } header { цвет фона: белый; положение: фиксированное; верх: 0; слева: 0; справа: 0; высота: 80 пикселей; дисплей: гибкий; align-items: center; } header * { дисплей: встроенный; } header li { маржа: 20 пикселей; } header li a { черный цвет; текстовое оформление: нет; }
Результат:
Мы на последнем отрезке! Наш логотип (ну, технически мой логотип) выглядит немного странно, поэтому давайте исправим позиционирование, добавив
с полем слева
! Вот код CSS:header img { высота: 80 пикселей; маржа слева: 40 пикселей; } тело { высота: 125vh; background-image: url ('https: // codetheweb.blog / assets / img / posts / style-a-navigation-bar-css / background.jpg '); размер фона: обложка; семейство шрифтов: без засечек; маржа сверху: 80 пикселей; отступ: 30 пикселей; } главный { цвет белый; } header { цвет фона: белый; положение: фиксированное; верх: 0; слева: 0; справа: 0; высота: 80 пикселей; дисплей: гибкий; align-items: center; } header * { дисплей: встроенный; } header li { маржа: 20 пикселей; } header li a { черный цвет; текстовое оформление: нет; }
Результат:
Намного эстетичнее! 😘Хорошо, это последнее на сегодня, и это очень круто.Мы собираемся добавить тень к нашей панели навигации. Какие? Тень? Я думал, это то, что можно делать только в фотошопе ???
Что ж, хотите верьте, хотите нет, но в CSS есть собственный способ создания теней - на самом деле, несколько способов! В другой статье я более подробно рассмотрю все различные типы теней CSS.
На данный момент мы будем использовать свойство
box-shadow
. Он просто создает прямоугольную тень вокруг элемента.Вот синтаксис свойства
box-shadow
:x-offset
иy-offset
- это расстояние от стороны и вверх / вниз до тени,blur
- насколько размыта shadow есть, аspread
- насколько далеко от элемента распространяется тень.Все эти значения могут быть отрицательными, за исключением размытияheader img { высота: 80 пикселей; маржа слева: 40 пикселей; } тело { высота: 125vh; фоновое изображение: url ('https://codetheweb.blog/assets/img/posts/style-a-navigation-bar-css/background.jpg'); размер фона: обложка; семейство шрифтов: без засечек; маржа сверху: 80 пикселей; отступ: 30 пикселей; } главный { цвет белый; } header { цвет фона: белый; положение: фиксированное; верх: 0; слева: 0; справа: 0; высота: 80 пикселей; дисплей: гибкий; align-items: center; box-shadow: 0 0 25px 0 черный; } header * { дисплей: встроенный; } header li { маржа: 20 пикселей; } header li a { черный цвет; текстовое оформление: нет; }
Как видите, на самом деле здесь мы используем только размытие
смещение по оси
,смещение по оси
и распространениепо оси
) на0
.Вот результат:Отлично !!! Наша панель навигации теперь имеет тень !!! 🎉
На сегодня все
Заключение
Итак, я надеюсь, что вы узнали много нового из этой статьи! Теперь вы можете создавать свои собственные панели навигации. Они используются почти на каждом веб-сайте, который вы посещаете, поэтому очень важно знать, как кодировать.
В будущем я буду писать руководство о том, как стилизовать адаптивную панель навигации , что означает, что она будет адаптироваться к разным размерам экрана (например,показать значок «меню» на мобильном телефоне).
А пока мне бы очень понравилось, если бы вы поделились этим или подписались на информационный бюллетень, чтобы получать новые сообщения в свой почтовый ящик. Если вы сделаете что-то из этого, вы великолепны, и я дам вам пожизненный запас тако 🌮 (не совсем, просто моя новая маркетинговая тактика 😜).
Получайте удовольствие, продолжайте кодировать, и я увижу вас в следующий раз, где я буду говорить о значках веб-сайтов в HTML (я подумал, что немного изменим его и сделаю HTML). Тогда увидимся!
Простое меню с использованием CSS
Простое меню с использованием CSS
Меню в HTML
- Если вы загуглите меню HTML, вы найдете десятки примеров, некоторые
простой, какой-то сложный. - Для большинства более красивых раскрывающихся меню требуется сложный JavaScript.
заставить их работать. - Вот ссылки на пару примеров, которые этого не делают:
- Я объединил два примера, чтобы создать простой
горизонтальное раскрывающееся меню - Этот код разрешает только один уровень подменю, без подменю
- Это меню создано с использованием классов идентификаторов в CSS.
- позволяют дать имя обновленным стилям в вашем
таблица стилей, используйте тег #id - пример, раздел ниже добавляет атрибуты стиля к тегу ul
для идентификатора меню, html внутри div, который использует идентификатор меню, будет
стиль
Классы идентификаторов
#menu ul
{
маржа: 0px;
отступ: 0 пикселей;
тип-стиль-список: нет; / * выключить пули * /
}- Некоторые основные моменты кода:
- режим отображения блока
используется для получения полного квадрата элементов списка - поплавок левый используется на
элементы списка, чтобы они двигались по горизонтали - изменен, чтобы выделить его.
- атрибут зависания
используется для изменения фона при наведении курсора на элемент - в списках скрыты (с помощью Diplay: none) до тех пор, пока
курсор перемещается по элементу списка. - перерыв определен, чтобы очистить поплавок влево. этот перерыв
необходимо использовать в конце меню.
Цвет текста и фона
Списки
- , чтобы реализовать меню в вашем html, выполните следующие действия
- убедитесь, что у вас есть файл CSS с вашим html-кодом
- добавьте ссылку в свой заголовок, чтобы файл CSS был доступен
- определите свое меню как список ul внутри div
- div должен использовать id = menu для использования стилей меню
- последним элементом в div должен быть разрыв (
) - должны располагаться между элементами меню
- и
Подменю
, эл.грамм.
- Если вы загуглите меню HTML, вы найдете десятки примеров, некоторые
Прежде всего, давайте начнем с размещения фактического элемента
цвет фона
, чтобы мы могли видеть его положение. Давайте добавим стили! header img {
высота: 80 пикселей;
}
тело {
высота: 125vh;
background-image: url ('https://codetheweb.blog/assets/img/posts/style-a-navigation-bar-css/background.jpg ');
размер фона: обложка;
семейство шрифтов: без засечек;
}
главный {
цвет белый;
}
header {
цвет фона: белый;
положение: фиксированное;
верх: 0;
слева: 0;
справа: 0;
высота: 80 пикселей;
}
Здесь мы позиционируем элемент
: фиксированная
. Затем мы также устанавливаем высоту
на 80 пикселей
, как я упоминал ранее (единственная причина, по которой мы используем эту особенность, — это то, что она хорошо выглядит).Вот результат:
Ура, наш заголовок / панель навигации теперь позиционируются! Однако фиктивный текст в
был скрыт 😕
Теперь, когда навигационная панель имеет позицию
из фиксированного
, остальное содержимое на странице перемещается вверх.Это означает, что основной текст на самом деле под нашей навигационной панелью!
Чтобы исправить это, нам просто нужно дать телу margin-top
, равное высоте навигационной панели, 80px
:
header img {
высота: 80 пикселей;
}
тело {
высота: 125vh;
фоновое изображение: url ('https://codetheweb.blog/assets/img/posts/style-a-navigation-bar-css/background.jpg');
размер фона: обложка;
семейство шрифтов: без засечек;
маржа сверху: 80 пикселей;
}
главный {
цвет белый;
}
header {
цвет фона: белый;
положение: фиксированное;
верх: 0;
слева: 0;
справа: 0;
высота: 80 пикселей;
}
Результат:
Woo! Единственное, что теперь текст находится прямо напротив нижней части панели навигации 😕 Давайте исправим это, добавив немного отступов
(я совершенно не хотел, чтобы это рифмовалось 😂) — вот CSS:
header img {
высота: 80 пикселей;
}
тело {
высота: 125vh;
background-image: url ('https: // codetheweb.blog / assets / img / posts / style-a-navigation-bar-css / background.jpg ');
размер фона: обложка;
семейство шрифтов: без засечек;
маржа сверху: 80 пикселей;
отступ: 30 пикселей;
}
главный {
цвет белый;
}
header {
цвет фона: белый;
положение: фиксированное;
верх: 0;
слева: 0;
справа: 0;
высота: 80 пикселей;
}
Результат:
Намного лучше!
Вот поля
и отступ визуализированного тела:
(поля оранжевые, отступы зеленые, а основная часть тела синяя)
Поздравляю, теперь у нас есть красивая страница много работает! Однако это не материал внутри
Стилизация содержимого панели навигации
Теперь давайте разместим элементы внутри панели навигации! Прежде всего, мы хотим, чтобы элементы располагались горизонтально, а не вертикально. Мы можем сделать это с помощью display: inline
:
header img {
высота: 80 пикселей;
}
тело {
высота: 125vh;
фоновое изображение: url ('https://codetheweb.blog/assets/img/posts/style-a-navigation-bar-css/background.jpg');
размер фона: обложка;
семейство шрифтов: без засечек;
маржа сверху: 80 пикселей;
отступ: 30 пикселей;
}
главный {
цвет белый;
}
header {
цвет фона: белый;
положение: фиксированное;
верх: 0;
слева: 0;
справа: 0;
высота: 80 пикселей;
}
header * {
дисплей: встроенный;
}
Здесь мы используем заголовок селектора *
. *
- это подстановочный знак и может означать любой элемент. Таким образом, заголовок *
в основном означает любой элемент внутри заголовка
. Также обратите внимание, что когда мы используем display: inline
, маркеры исчезают. Причина, по которой маркеры появляются в первую очередь, заключается в том, что по умолчанию элементы