Стильные хлебные крошки на CSS3
Новые возможности CSS, такие как трансформации, переходы и градиенты, открывают возможности для реализации различных элементов дизайна с использованием только стилей. В данном уроке мы сделаем "хлебные крошки" со стрелками и градиентом цвета.
Шаг 1. Основа кнопок
Создание кнопок с градиентами и тенями является достаточно простой задачей. Мы используем комбинацию элементов div
и span
, но можно построить все на основе списка.
<div id="breadcrumbs"> <div class="button"> <span class="label">Главная</span> </div> <div class="button"> <span class="label">Продукты</span> </div> <div class="button"> <span class="label">Цвета</span> </div> <div class="button"> <span class="label">Белый</span> </div> </div>
* { box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; margin: 0; padding: 0; font-family: sans-serif; font-size: 12px; } body {background-color: #d3d7cf;} #breadcrumbs { display: inline-block; margin: 10px; border-radius: 10px; box-shadow:0 0 1px rgba(0,0,0,0.5); } .button { display: inline-block; cursor: pointer; margin-right: -3px; box-shadow: inset 0 -1px 1px rgba(0,0,0,0.25), inset 0 1px 1px rgba(255,255,255,0.25); background-color: #729fcf; background: -moz-linear-gradient(top, #729fcf, #3465a4); background: -o-linear-gradient(top, #729fcf, #3465a4); background: -webkit-gradient(linear, left top, left bottom, from(#729fcf), to(#3465a4)); } .button:hover { background-color: #3465a4; background: -moz-linear-gradient(bottom, #729fcf, #3465a4); background: -o-linear-gradient(bottom, #729fcf, #3465a4); background: -webkit-gradient(linear, left bottom, left top, from(#729fcf), to(#3465a4)); box-shadow: inset 0 1px 1px rgba(0,0,0,0.25);} .button:first-child {border-radius: 10px 0 0 10px;} .button:last-child {border-radius: 0 10px 10px 0;} .label { text-shadow: 0 1px 1px #729fcf, 0 -1px 1px #3465a4; color: white; height: 30px; padding: 8px; -moz-user-select: none; -webkit-user-select: none; display: inline-block; } .button:hover .label {text-shadow: 0 -1px 1px #729fcf, 0 1px 1px #3465a4;} .button:first-child .label {padding-left: 15px;} .button:last-child .label {padding-right: 15px;} .button:last-child .arrow {display: none;}
Шаг 2. Создаем стрелки
Для того чтобы создать треугольные стрелки с градиентами будем использовать CSS трансформации и простую обрезку. Сначала мы создаем элемент span
и вращаем его на 45 градусов. Будем использовать несколько градиентов из шага 1, но с углом в 135 градусов. Мы вставлем повернутый элемент span
в другой и выравниваем размеры, поля и свойство перекрытия так, чтобы было видно только половину внутреннего элемента. Так создается иллюзия треугольника с градиентами или тенями.
<span class="arrow"><span></span></span>
.arrow {width: 17px;height: 30px;display: inline-block;vertical-align: top;overflow: hidden;} .arrow span { border-radius: 5px; width: 24px;height: 24px; display: inline-block; -moz-transform: rotate(45deg); -webkit-transform: rotate(45deg); -o-transform: rotate(45deg); -ms-transform: rotate(45deg); margin-left: -13px; margin-top: 3px; box-shadow: inset 1px 1px 0px rgba(255,255,255,0.25), 1px -1px 2px rgba(0,0,0,0.25); background-color: #729fcf; background: -moz-linear-gradient(135deg, #3465a4, #729fcf); background: -o-linear-gradient(135deg, #3465a4, #729fcf); background: -webkit-gradient(linear, right bottom, left top, from(#3465a4), to(#729fcf)); } .arrow:hover span { background-color: #3465a4; background: -moz-linear-gradient(135deg, #729fcf, #3465a4); background: -o-linear-gradient(135deg, #729fcf, #3465a4); background: -webkit-gradient(linear, left top, right bottom, from(#3465a4), to(#729fcf)); box-shadow: -1px 1px 2px rgba(255,255,255,0.25), inset -1px 1px 1px rgba(0,0,0,0.25); }
Шаг 3. Собираем все вместе
Помещаем стрелку после метки и устанавливаем поля и отступы.
- Устанавливаем для класса .arrow для свойства margin-left значение -5px.
- Изменяем .arrow:hover на .button:hover .arrow.
- Устнавливаем для класса .label для свойства padding-left значение 25px, а для класса .button для свойства margin-right значение -20px.
- Устанавливаем для идентификатора #breadcrumbs для свойства padding-right значение 18px.
<div id="breadcrumbs"> <div class="button"> <span class="label">Главная</span> <span class="arrow"><span></span></span> </div> <div class="button"> <span class="label">Продукты</span> <span class="arrow"><span></span></span> </div> <div class="button"> <span class="label">Цвета</span> <span class="arrow"><span></span></span> </div> <div class="button"> <span class="label">Белый</span> <span class="arrow"><span></span></span> </div> </div>
* { box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; margin: 0; padding: 0; font-family: sans-serif; font-size: 12px; } body {background-color: #d3d7cf;} #container { width: 285px; margin: 0 auto; margin-top: 23%; } #breadcrumbs { display: inline-block; margin: 10px; padding-right: 18px; border-radius: 10px; box-shadow:0 0 1px rgba(0,0,0,0.5); } .button { display: inline-block; cursor: pointer; margin-right: -20px; box-shadow: inset 0 -1px 1px rgba(0,0,0,0.25), inset 0 1px 1px rgba(255,255,255,0.25); background-color: #729fcf; background: -moz-linear-gradient(top, #729fcf, #3465a4); background: -o-linear-gradient(top, #729fcf, #3465a4); background: -webkit-gradient(linear, left top, left bottom, from(#729fcf), to(#3465a4)); } .button:hover { background-color: #3465a4; background: -moz-linear-gradient(bottom, #729fcf, #3465a4); background: -o-linear-gradient(bottom, #729fcf, #3465a4); background: -webkit-gradient(linear, left bottom, left top, from(#729fcf), to(#3465a4)); box-shadow: inset 0 1px 1px rgba(0,0,0,0.25);} .button:first-child {border-radius: 10px 0 0 10px;} .button:last-child {border-radius: 0 10px 10px 0;} .label { text-shadow: 0 1px 1px #729fcf, 0 -1px 1px #3465a4; color: white; height: 30px; padding: 8px; -moz-user-select: none; -webkit-user-select: none; display: inline-block; padding-left: 25px; } .button:hover .label {text-shadow: 0 -1px 1px #729fcf, 0 1px 1px #3465a4;} .button:first-child .label {padding-left: 15px;} .button:last-child .label {padding-right: 15px;} .button:last-child .arrow {display: none;} .arrow {width: 17px;height: 30px;display: inline-block;vertical-align: top;overflow: hidden;margin-left: -5px;} .arrow span { border-radius: 5px; width: 24px;height: 24px; display: inline-block; -moz-transform: rotate(45deg); -webkit-transform: rotate(45deg); -o-transform: rotate(45deg); -ms-transform: rotate(45deg); margin-left: -13px; margin-top: 3px; box-shadow: inset 1px 1px 0px rgba(255,255,255,0.25), 1px -1px 2px rgba(0,0,0,0.25); background-color: #729fcf; background: -moz-linear-gradient(135deg, #3465a4, #729fcf); background: -o-linear-gradient(135deg, #3465a4, #729fcf); background: -webkit-gradient(linear, right bottom, left top, from(#3465a4), to(#729fcf)); } .button:hover .arrow span { background-color: #3465a4; background: -moz-linear-gradient(135deg, #729fcf, #3465a4); background: -o-linear-gradient(135deg, #729fcf, #3465a4); background: -webkit-gradient(linear, left top, right bottom, from(#3465a4), to(#729fcf)); box-shadow: -1px 1px 2px rgba(255,255,255,0.25), inset -1px 1px 1px rgba(0,0,0,0.25); }
Источник: http://feedproxy.google.com/~r/ruseller/CdHX/~3/Umx5eiVmQls/lessons.php
Дайджест новых статей по интернет-маркетингу на ваш email
Новые статьи и публикации
- 2024-09-30 » Как быстро запустить Laravel на Windows
- 2024-09-25 » Next.js
- 2024-09-05 » OpenAI рассказал, как запретить ChatGPT использовать содержимое сайта для обучения
- 2024-08-28 » Чек-лист: как увеличить конверсию интернет-магазина на примере спортпита
- 2024-08-01 » WebSocket
- 2024-07-26 » Интеграция с Яндекс Еда
- 2024-07-26 » Интеграция с Эквайринг
- 2024-07-26 » Интеграция с СДЕК
- 2024-07-26 » Интеграция с Битрикс-24
- 2024-07-26 » Интеграция с Travelline
- 2024-07-26 » Интеграция с Iiko
- 2024-07-26 » Интеграция с Delivery Club
- 2024-07-26 » Интеграция с CRM
- 2024-07-26 » Интеграция с 1C-Бухгалтерия
- 2024-07-24 » Что такое сторителлинг: техники и примеры
- 2024-07-17 » Ошибка 404: что это такое и как ее использовать для бизнеса
- 2024-07-03 » Размещайте прайс-листы на FarPost.ru и продавайте товары быстро и выгодно
- 2024-07-01 » Профилирование кода в PHP
- 2024-06-28 » Изучаем ABC/XYZ-анализ: что это такое и какие решения с помощью него принимают
- 2024-06-17 » Зачем вам знать потребности клиента
- 2024-06-11 » Что нового в работе Яндекс Метрики: полный обзор обновления
- 2024-06-11 » Поведенческие факторы ранжирования в Яндексе
- 2024-06-11 » Скорость загрузки сайта: почему это важно и как влияет на ранжирование
- 2024-05-27 » Подборка сервисов для расшифровки аудио в текст
- 2024-05-27 » PostgreSQL 16. Изоляция транзакций. Часть 2
- 2024-05-06 » Как настраивать конверсионные стратегии: работа над ошибками
- 2024-04-22 » Комментирование кода и генерация документации в PHP
- 2024-04-22 » SEO в России и на Западе: в чем основные отличия
- 2024-04-22 » SEO для международного масштабирования
- 2024-04-22 » Как использовать XML-карты для продвижения сайта
Есть три способа отвечать на вопросы: сказать необходимое, отвечать с приветливостью и – наговорить лишнего Плутарх - (ок. 46 — ок.120) - древнегреческий писатель, историк |
Мы создаем сайты, которые работают! Профессионально обслуживаем и продвигаем их , а также по всей России и ближнему зарубежью с 2006 года!
Как мы работаем
Заявка
Позвоните или оставьте заявку на сайте.
Консультация
Обсуждаем что именно Вам нужно и помогаем определить как это лучше сделать!
Договор
Заключаем договор на оказание услуг, в котором прописаны условия и обязанности обеих сторон.
Выполнение работ
Непосредственно оказание требующихся услуг и работ по вашему заданию.
Поддержка
Сдача выполненых работ, последующие корректировки и поддержка при необходимости.