Хлебные крошки в стиле google

Хлебные крошки в стиле google


Очень симпатичные хлебные крошки в стиле сегодняшнего гугловского оформления. Протестировано во всех браузерах поддерживающих CSS3, при этом и в старых браузерах (в большинстве случаев) крошки будут корректно отображаться.

HTML разметка
Код мы разделим на два блока. В первом блоке будут использоваться изображения, во-втором не будут. Каждый блок имеет свой ID.
<!-- with images -->
<div id="breadcrumb">
<ul class="crumbs">
<li class="first"><a href="#" style="z-index:9;"><span></span>Главная</a></li>
<li><a href="#" style="z-index:8;">Скрипты</a></li>
<li><a href="#" style="z-index:7;">Breadcrumbs</a></li>
<li><a href="#" style="z-index:6;">Хлебные крошки в стиле Google</a></li>
</ul>
</div>

Внутри DIV с ID breadcrumbs у нас расположен неупорядоченный список. Для первого элемента списка дан класс first, чтобы сделать не большой padding слева. И добавлен пустой SPAN для создания левой границы. Кроме того, каждая ссылка имеет свой z-index, таким образом каждая следующая ссылка будет находиться под предыдущей. Мы начали с 9 номера, но если у вас будет более длинная иерархия, то начать можете с большего числа.

Хлебные крошки без изображений
<div id="breadcrumb2">
<ul class="crumbs2">
<li class="first"><a href="#">Главная</a></li>
<li><a href="#">Скрипты</a></li>
<li><a href="#">Breadcrumbs</a></li>
<li class="last"><a href="#">Хлебные крошки в стиле Google</a></li>
</ul>
</div>

Тут используем другой ID - breadcrumb2 и другой класс для неупорядоченного списка - crumbs2. У нас сохранился класс .first у первого элемента списка, но и добавился класс .last у последнего элемента. Без изображений мы не можем дублировать стрелки для каждого пункта списка, и чтобы придать элегантности закруглили один край у первого элемента и у последнего.

CSS
Начнем с класса .crumb
.crumbs { display: block; }  
.crumbs li { display: inline; }
.crumbs li.first { padding-left: 8px; }
.crumbs li a,
.crumbs li a:link,
.crumbs li a:visited {
color: #666;
display: block;
float: left;
font-size: 12px;
margin-left: -13px;
padding: 7px 17px 11px 25px;
position: relative;
text-decoration: none;
}
.crumbs li a {
background-image: url('../img/bg-crumbs.png');
background-repeat: no-repeat;
background-position: 100% 0;
position: relative;
}
.crumbs li a:hover {
color: #333;
background-position: 100% -48px;
cursor: pointer;
}
.crumbs li a:active {
color: #333;
background-position: 100% -96px;
}
.crumbs li.first a span {
height: 29px;
width: 3px;
border-left: 1px solid #d9d9d9;
position: absolute;
top: 0px;
left: 0px;
}

Для фона используем изображение bg-crumbs.png, которое является спрайтовым и содержит сразу три состояния: default, hover и active. В исходниках мы приложили ещё 5 готовых цветовых варианта для фона.

А теперь CSS для второго блока, который должен заменить изображения на CSS3 свойства, поэтому код будет больше:
.crumbs2 {  
display: block;
margin-left: 27px;
padding: 0;
padding-top: 10px;
}
.crumbs2 li { display: inline; }
.crumbs2 li a,
.crumbs2 li a:link,
.crumbs2 li a:visited {
color: #666;
display: block;
float: left;
font-size: 12px;
padding: 7px 16px 7px 19px;
position: relative;
text-decoration: none;
border: 1px solid #d9d9d9;
border-right-width: 0px;
}
.crumbs2 li a {
background-image: -webkit-gradient(linear,left bottombottom,left top,color-stop(0.45, rgb(241,241,241)),color-stop(0.73, rgb(245,245,245)));
background-image: -moz-linear-gradient( center bottombottom, rgb(241,241,241) 45%, rgb(245,245,245) 73%);

/* For Internet Explorer 5.5 - 7 */
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#f1f1f1, endColorstr=#f5f5f5);

/* For Internet Explorer 8 */
-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#f1f1f1, endColorstr=#f5f5f5)";
}

.crumbs2 li.first a {
border-top-left-radius: 5px;
-moz-border-radius-topleft: 5px;
-webkit-border-top-left-radius: 5px;
}
.crumbs2 li.last a {
border-right-width: 1px;
border-bottom-rightright-radius: 5px;
-moz-border-radius-bottomright: 5px;
-webkit-border-bottom-rightright-radius: 5px;
}

Тут мы заменяем фоновое изображение - CSS3 градиентом и радиусами на первом и последнем элементе списка.
.crumbs2 li a:hover {
border-top-color: #c4c4c4;
border-bottom-color: #c4c4c4;

background-image: -webkit-gradient(linear,left bottombottom,left top,color-stop(0.45, rgb(241,241,241)),color-stop(0.73, rgb(248,248,248)));
background-image: -moz-linear-gradient( center bottombottom, rgb(241,241,241) 45%, rgb(248,248,248) 73%);

/* For Internet Explorer 5.5 - 7 */
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#f8f8f8, endColorstr=#f1f1f1);

/* For Internet Explorer 8 */
-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#f8f8f8, endColorstr=#f1f1f1)";

color: #333;

-moz-box-shadow: 0px 2px 2px #e8e8e8;
-webkit-box-shadow: 0px 2px 2px #e8e8e8;
box-shadow: 0px 2px 2px #e8e8e8;
}

.crumbs2 li a:active {
border-top-color: #c4c4c4;
border-bottom-color: #c4c4c4;

background-image: -webkit-gradient(linear,left bottombottom,left top,color-stop(0.45, rgb(224,224,224)),color-stop(0.73, rgb(235,235,235)));
background-image: -moz-linear-gradient( center bottombottom, rgb(224,224,224) 45%, rgb(235,235,235) 73%);

/* For Internet Explorer 5.5 - 7 */
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ebebeb, endColorstr=#e0e0e0);

/* For Internet Explorer 8 */
-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#ebebeb, endColorstr=#e0e0e0)";

box-shadow: -1px 1px 1px 0px #dadada inset;
-webkit-box-shadow: -1px 1px 1px 0px #dadada inset;
-moz-box-shadow: -1px 1px 1px 0px #dadada inset;

color: #333;
}


Тут займемся состояниями default, hover и active. И всё на этом. У нас получились отличные хлебные крошки в google стиле.

Добавить комментарий

Нам важно знать ваше мнение. Оставьте свой отзыв или ответ

    • bowtiesmilelaughingblushsmileyrelaxedsmirk
      heart_eyeskissing_heartkissing_closed_eyesflushedrelievedsatisfiedgrin
      winkstuck_out_tongue_winking_eyestuck_out_tongue_closed_eyesgrinningkissingstuck_out_tonguesleeping
      worriedfrowninganguishedopen_mouthgrimacingconfusedhushed
      expressionlessunamusedsweat_smilesweatdisappointed_relievedwearypensive
      disappointedconfoundedfearfulcold_sweatperseverecrysob
      joyastonishedscreamtired_faceangryragetriumph
      sleepyyummasksunglassesdizzy_faceimpsmiling_imp
      neutral_faceno_mouthinnocent

Комментариев 0

Новые обсуждения на Форуме