CSS3 Меню навигации | Уроки по CSS

mini_999-9519999

Вы возможно уже слышали что CSS3 представляет собой мощный инструмент анимации, который позволяет создавать анимации без использования дополнительных сценариев на странице сайта. Что возможно в новом поколении браузеров мы будем иметь ещё более мощные средства в том числе 3D преобразования.

Что-же мы можем сделать уже сегодня? В настоящие время только три браузера дают возможность оживить CSS свойства, это Chrome, Safari и Opera которые в общем занимают небольшую часть рынка браузеров. Firefox как ожидается, вскоре тоже присоединится к этому списку, а также с выходом IE9 даёт нам возможность начинать использовать CSS3.

В этом примере мы сделаем анимированное меню навигации которое тагже будет работать в старых версиях браузеров но без анимации.

k_prim2-2761484

Меню организованно в виде ненумерованного списка. Это наиболее удобная структура для меню так как она обеспечивает простой способ стилизации меню ссылок и семантически правильно.

demo.html

В каждом элементе списка li находиться гиперссылка с контейнером span внутри, по умолчанию эти контейнеры скрыты и открываться только при наведении курсора. каждое звено имеет уникальное имя класса которое используется для придания уникального стиля фона.

styles.css — Часть 1

*{  /* Универсальный CSS сброс */  margin:0;  padding:0; }   body{  font-size:14px;  color:#666;  background:#111 no-repeat; /* цвет фона который применяеться в случае если браузер неподдерживает градиенты */    /* CSS3 Радиальные градиенты это для новых браузеров Firefox Chrome Safari */  background-image:-moz-radial-gradient(center -100px 45deg, circle farthest-corner, #444 150px, #111 300px);  background-image:-webkit-gradient(radial, 50% 0, 150, 50% 0, 300, from(#444), to(#111));    font-family:Arial, Helvetica, sans-serif; }   #navigationMenu li{  list-style:none;  height:39px;  padding:2px;  width:40px; }

Для основного стиля фона страницы здесь используется два варианта, это просто цвет фона который выступает в качестве запасного в случае если браузер не поддерживает CSS3, и два параметра градиента CSS3 для новых браузеров.

styles.css — Часть 2

#navigationMenu span{  /* Базовые контейнеры */  width:0;  left:38px;  padding:0;  position:absolute;  overflow:hidden;    /* Стили текста */  font-family:'Myriad Pro',Arial, Helvetica, sans-serif;  font-size:18px;  font-weight:bold;  letter-spacing:0.6px;  white-space:nowrap;  line-height:39px;    /* CSS3 Переход: */  -webkit-transition: 0.25s;    /* Future proofing (these do not work yet): */  -moz-transition: 0.25s;  transition: 0.25s; }   #navigationMenu a{  /* Фон спрайта: */  background:url('img/navigation.jpg') no-repeat;    height:39px;  width:38px;  display:block;  position:relative; }   /* Стили при навидении курсора */   #navigationMenu a:hover span{ width:auto; padding:0 20px;overflow:visible; } #navigationMenu a:hover{  text-decoration:none;      -moz-box-shadow:0 0 5px #9ddff5;  -webkit-box-shadow:0 0 5px #9ddff5;  box-shadow:0 0 5px #9ddff5; }

styles.css — Часть 3

/* Зеленая кнопка */   #navigationMenu .home { background-position:0 0;} #navigationMenu .home:hover { background-position:0 -39px;} #navigationMenu .home span{  background-color:#7da315;  color:#3d4f0c;  text-shadow:1px 1px 0 #99bf31; }   /* Синяя кнопка */   #navigationMenu .about { background-position:-38px 0;} #navigationMenu .about:hover { background-position:-38px -39px;} #navigationMenu .about span{  background-color:#1e8bb4;  color:#223a44;  text-shadow:1px 1px 0 #44a8d0; }   /* Оранжевая кнопка */   #navigationMenu .services { background-position:-76px 0;} #navigationMenu .services:hover { background-position:-76px -39px;} #navigationMenu .services span{  background-color:#c86c1f;  color:#5a3517;  text-shadow:1px 1px 0 #d28344; }   /* Желтая кнопка */   #navigationMenu .portfolio { background-position:-114px 0;} #navigationMenu .portfolio:hover{ background-position:-114px -39px;} #navigationMenu .portfolio span{  background-color:#d0a525;  color:#604e18;  text-shadow:1px 1px 0 #d8b54b; }   /* Пурпурная кнопка */   #navigationMenu .contact { background-position:-152px 0;} #navigationMenu .contact:hover { background-position:-152px -39px;} #navigationMenu .contact span{  background-color:#af1e83;  color:#460f35;  text-shadow:1px 1px 0 #d244a6; }

Архив с исходником.

Ссылка доступна только для зарегистрированных пользователей!