Красиво оформленные хлебные крошки css. Использование списков

Приветствую вас. Хлебные крошки — это достаточно полезный блок на любом сайте, потому что он позволяет вам видеть полный путь к странице, на которой вы сейчас. И сегодня я вам расскажу, как оформить в css хлебные крошки? Не создать, а именно оформить. Вообще вариантов много, я затрону два.

Простой вариант оформления — без картинки

HTml-код имитирует хлебные крошки. Пусть он будет таким:

В принципе, можно просто проставить угловую скобку, но тогда не будет возможности управлять толщиной линии. Я предлагаю сделать по-другому, с помощью трансформаций. Вот такой код это сделает:

Cumbs1 a:not(:last-child):after{
content: "";
display: inline-block;
width: 5px;
height: 5px;
border-top: 2px solid black;
border-right: 2px solid black;
transform: rotate(45deg);
margin-left: 5px
}
.cumbs1 a:hover{
color: orange;
}

Возможно, для вас это будут сложноватые селекторы, тогда ознакомьтесь с этой статьей . Суть такова: с помощью псевдоэлемента (о том, что это и как использовать — ) after добавляет в конец каждой ссылки наш разделитель. Он формируется с помощью двух рамок и поворота на 45 градусов. Также добавляем оранжевый цвет ссылкам по наведению. Вот, в принципе, и все оформление.

Другой вариант оформления — с картинкой

В этом случае хлебные крошки будут выглядеть интереснее, вот так:

Для этого нам понадобится картинка и немного стилей в css:

Cumbs2{
background: orange;
max-width: 250px;
}
.cumbs2 a{
display: inline-block;
padding: 7px 0;
color: #000;
}
.cumbs2 a:not(:last-child){
background: url(arrow.png) no-repeat 100% 50%;
padding-right: 33px;
}

Html код я не привожу, потому что он такой же, как в первом случае. С чего тут начать? Во-первых, определяем фоновый цвет и размеры всего блока с хлебными крошками. Далее устанавливаем общие стили для ссылок — блочно-строчный тип, отступы сверху и внизу и цвет.

Следующий этап самый интересный — с помощью псевдокласса not выбираем все ссылки в блоке, кроме последней, и ставим для них фоновое изображение arrow.png , без повторения, с позицией фона посередине по высоте и в самом конце по ширине одной ссылки. Внутренний отступ справа первым двум ссылкам нужен как раз для того, чтобы разместить там картинку. Если бы его не было, картинка бы наезжала на текст.

Как работает псевдокласс not, я думаю, вы уже догадались — он выбирает все элементы, кроме того, что указывается в скобках. Если что, в будущем я напишу еще небольшую заметку о работе с псевдоклассом:not , где все будет более понятно. Что ж, вот такие 2 простых варианта оформления хлебных крошек, на основе которых вы можете сделать свой собственный.

Навигация в виде "хлебных крошек" помогает посетителям сайта ориентироваться в иерархической структуре документов и находить путь на верхний уровень. Поэтому, если на сайте размешается большое количество документов, то его надо снабдить "хлебными крошками". В данном уроке будет представлен CSS код для создания различных вариантов дизайна такого нужного навигационного инструмента.

Разметка HTML

Разметка проста и минимальна. Она основана на неупорядоченном списке.

CSS

Для начала сделаем небольшой сброс CSS для нашего неупорядоченного списка:

Ul{ margin: 0; padding: 0; list-style: none; }

Для дизайна наших "хлебных крошек" будут использоваться псевдо-элементы.

Первый пример

В данном примере используется очень простая техника . Создается треугольник на рамке справа с помощью псевдо-элементов, размещаемых один над другим. Темный треугольник смещается, чтобы создать эффект рамки.

#breadcrumbs-one{ background: #eee; border-width: 1px; border-style: solid; border-color: #f5f5f5 #e5e5e5 #ccc; border-radius: 5px; box-shadow: 0 0 2px rgba(0,0,0,.2); overflow: hidden; width: 100%; } #breadcrumbs-one li{ float: left; } #breadcrumbs-one a{ padding: .7em 1em .7em 2em; float: left; text-decoration: none; color: #444; position: relative; text-shadow: 0 1px 0 rgba(255,255,255,.5); background-color: #ddd; background-image: linear-gradient(to right, #f5f5f5, #ddd); } #breadcrumbs-one li:first-child a{ padding-left: 1em; border-radius: 5px 0 0 5px; } #breadcrumbs-one a:hover{ background: #fff; } #breadcrumbs-one a::after, #breadcrumbs-one a::before{ content: ""; position: absolute; top: 50%; margin-top: -1.5em; border-top: 1.5em solid transparent; border-bottom: 1.5em solid transparent; border-left: 1em solid; right: -1em; } #breadcrumbs-one a::after{ z-index: 2; border-left-color: #ddd; } #breadcrumbs-one a::before{ border-left-color: #ccc; right: -1.1em; z-index: 1; } #breadcrumbs-one a:hover::after{ border-left-color: #fff; } #breadcrumbs-one .current, #breadcrumbs-one .current:hover{ font-weight: bold; background: none; } #breadcrumbs-one .current::after, #breadcrumbs-one .current::before{ content: normal; }

Формы CSS строятся с помощью псевдо-элементов, размещаемых перед и после элемента.

#breadcrumbs-two{ overflow: hidden; width: 100%; } #breadcrumbs-two li{ float: left; margin: 0 .5em 0 1em; } #breadcrumbs-two a{ background: #ddd; padding: .7em 1em; float: left; text-decoration: none; color: #444; text-shadow: 0 1px 0 rgba(255,255,255,.5); position: relative; } #breadcrumbs-two a:hover{ background: #99db76; } #breadcrumbs-two a::before{ content: ""; position: absolute; top: 50%; margin-top: -1.5em; border-width: 1.5em 0 1.5em 1em; border-style: solid; border-color: #ddd #ddd #ddd transparent; left: -1em; } #breadcrumbs-two a:hover::before{ border-color: #99db76 #99db76 #99db76 transparent; } #breadcrumbs-two a::after{ content: ""; position: absolute; top: 50%; margin-top: -1.5em; border-top: 1.5em solid transparent; border-bottom: 1.5em solid transparent; border-left: 1em solid #ddd; right: -1em; } #breadcrumbs-two a:hover::after{ border-left-color: #99db76; } #breadcrumbs-two .current, #breadcrumbs-two .current:hover{ font-weight: bold; background: none; } #breadcrumbs-two .current::after, #breadcrumbs-two .current::before{ content: normal; }

С помощью свойства border-radius скругляются углы прямоугольника и квадратов. Квадрат поворачивается, чтобы сделать из него бриллиант.

#breadcrumbs-three{ overflow: hidden; width: 100%; } #breadcrumbs-three li{ float: left; margin: 0 2em 0 0; } #breadcrumbs-three a{ padding: .7em 1em .7em 2em; float: left; text-decoration: none; color: #444; background: #ddd; position: relative; z-index: 1; text-shadow: 0 1px 0 rgba(255,255,255,.5); border-radius: .4em 0 0 .4em; } #breadcrumbs-three a:hover{ background: #abe0ef; } #breadcrumbs-three a::after{ background: #ddd; content: ""; height: 2.5em; margin-top: -1.25em; position: absolute; right: -1em; top: 50%; width: 2.5em; z-index: -1; transform: rotate(45deg); border-radius: .4em; } #breadcrumbs-three a:hover::after{ background: #abe0ef; } #breadcrumbs-three .current, #breadcrumbs-three .current:hover{ font-weight: bold; background: none; } #breadcrumbs-three .current::after{ content: normal; }

С помощью псевдо-элементов добавляются два прямоугольника. Затем им скругляются углы.

#breadcrumbs-four{ overflow: hidden; width: 100%; } #breadcrumbs-four li{ float: left; margin: 0 .5em 0 1em; } #breadcrumbs-four a{ background: #ddd; padding: .7em 1em; float: left; text-decoration: none; color: #444; text-shadow: 0 1px 0 rgba(255,255,255,.5); position: relative; } #breadcrumbs-four a:hover{ background: #efc9ab; } #breadcrumbs-four a::before, #breadcrumbs-four a::after{ content:""; position:absolute; top: 0; bottom: 0; width: 1em; background: #ddd; transform: skew(-10deg); } #breadcrumbs-four a::before{ left: -.5em; border-radius: 5px 0 0 5px; } #breadcrumbs-four a:hover::before{ background: #efc9ab; } #breadcrumbs-four a::after{ right: -.5em; border-radius: 0 5px 5px 0; } #breadcrumbs-four a:hover::after{ background: #efc9ab; } #breadcrumbs-four .current, #breadcrumbs-four .current:hover{ font-weight: bold; background: none; } #breadcrumbs-four .current::after, #breadcrumbs-four .current::before{ content: normal; }

Преимущества дизайна "хлебных крошек" на основе CSS3

  • Нет изображений, поэтому просто обновлять и поддерживать.
  • Легко масштабируется.
  • Обратная совместимость со старыми браузерами.

C ollection of free HTML and CSS breadcrumb navigation code examples: simple, responsive, multiline, collapsed , etc. Update of February 2018 collection. 3 new items.

Related Articles


About the code

Simple CSS .


About the code

Feel free to customize it to your own way. Colors, sizes, shadows, borders, etc. Made with Bootstrap .


About the code

Breadcrumbs with "Smart" Ellipsis (Flex)

Play with the browser size to see how the behave when there"s no room left for them.


About the code

This example shows what happens as a user gets closer to the back button. The breadcrumbs expand and allow the user to navigate to almost anywhere else in the course while only having minimal impact on space.

Breadcrumbs with CSS custom properties as API.
Made by Stas Melnikov
June 15, 2017

Adaptive multi-line pure CSS breadcrumb arrows.
Made by Glynn Smith
May 30, 2017

Demo GIF: Breadcrumbs

HTML and CSS breadcrumbs.
Made by Dany Santos
July 15, 2016

Material Design breadcrumb, progress tracker.
Made by Shyam Chen
July 30, 2015

A list of breadcrumbs collapsed down to show only preview text for all but the current page, with full text shown on hover/focus.
Made by Skye
March 4, 2015

Pure CSS responsive breadcrumbs.
Made by Oliver Knoblich
April 2, 2014

На этом уроке познакомитесь с процессом создания в Bootstrap 3 и 4 навигационных цепочек («хлебных крошек»).

Разметка навигационных цепочек

Навигационные цепочки («хлебные крошки», breadcrumbs) - это схема навигации, которая показывает текущее положение пользователя на сайте. Они применяются для отображения иерархически-организованной информации. Например, в интернет-магазине "хлебные крошки" обычно представляют собой цепочки разделов. С их помощью пользователь может определить, в каком разделе он находится сейчас, а также они позволяют перейти на разделы более высоких уровней, т.е. предоставляют ещё одну возможность навигации по структуре сайта.

"Хлебные крошки" в Bootstrap – это обычный упорядоченный список с классом breadcrumbs . Разделитель элементов списка автоматически добавляется с помощью CSS (bootstrap.min.css) через следующий класс:

Breadcrumbs > li + li:before { color: #cccccc; content: "/"; padding: 0 5px; }

Пример создания "хлебных крошек" с помощью Bootstrap.

Оформление навигационных цепочек в Bootstrap

Ещё один пример:

Хлебные крошки для навигации по архивной информации

Не стандартный вариант оформления хлебных крошек

Рассмотрим пример создания следующего варианта оформления хлебных крошек:

Пример оформления хлебных крошек на сайте

Процесс создания хлебных крошек складывается из разработки HTML структуры и стилей (CSS).

CSS хлебных крошек:

/* хлебные крошки */ #breadcrumb { list-style: none; display: inline-block; padding-left: 0px; } #breadcrumb .icon { font-size: 14px; } #breadcrumb li { float: left; } #breadcrumb li a { color: #fff; display: block; background: #cc2eaa; text-decoration: none; position: relative; height: 34px; line-height: 34px; padding: 0 10px 0 5px; text-align: center; margin-right: 23px; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } #breadcrumb li:first-child a { padding-left: 15px; -moz-border-radius: 4px 0 0 4px; -webkit-border-radius: 4px; border-radius: 4px 0 0 4px; } #breadcrumb li:first-child a:before { border: none; } #breadcrumb li:last-child a { padding-right: 15px; -moz-border-radius: 0 4px 4px 0; -webkit-border-radius: 0; border-radius: 0 4px 4px 0; } #breadcrumb li:last-child a:after { border: none; } #breadcrumb li a:before, #breadcrumb li a:after { content: ""; position: absolute; top: 0; border: 0 solid #cc2eaa; border-width: 17px 10px; width: 0; height: 0; } #breadcrumb li a:before { left: -20px; border-left-color: transparent; } #breadcrumb li a:after { left: 100%; border-color: transparent; border-left-color: #cc2eaa; } #breadcrumb li a:hover { background-color: #a22587; } #breadcrumb li a:hover:before { border-color: #a22587; border-left-color: transparent; } #breadcrumb li a:hover:after { border-left-color: #a22587; } #breadcrumb li a:active { background-color: #a22587; } #breadcrumb li a:active:before { border-color: #a22587; border-left-color: transparent; } #breadcrumb li a:active:after { border-left-color: #a22587; } #breadcrumb li.current a { pointer-events: none; cursor: not-allowed; filter: alpha(opacity=65); -webkit-box-shadow: none; box-shadow: none; opacity: .65; }

Изменения цвета производится посредством редактирования значений соответствующих CSS свойств.

HTML разметка:

Веделение текущего элемента (если он будет использоваться в цепочке) осуществляется с помощью добавления к элементу li класса current .