3 452 Скрипты / Other

Хлебные крошки в стиле 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 с IDbreadcrumbs у нас расположен неупорядоченный список. Для первого элемента списка дан класс 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 стиле.
Скачать 1175Загрузок 15,31 Kb
Демо

Комментарии

  • Facebook
  • Вконтакте

Похожие статьи