Вы возможно уже слышали что CSS3 представляет собой мощный инструмент анимации, который позволяет создавать анимации без использования дополнительных сценариев на странице сайта. Что возможно в новом поколении браузеров мы будем иметь ещё более мощные средства в том числе 3D преобразования.
Что-же мы можем сделать уже сегодня? В настоящие время только три браузера дают возможность оживить CSS свойства, это Chrome, Safari и Opera которые в общем занимают небольшую часть рынка браузеров. Firefox как ожидается, вскоре тоже присоединится к этому списку, а также с выходом IE9 даёт нам возможность начинать использовать CSS3.
В этом примере мы сделаем анимированное меню навигации которое тагже будет работать в старых версиях браузеров но без анимации.
Меню организованно в виде ненумерованного списка. Это наиболее удобная структура для меню так как она обеспечивает простой способ стилизации меню ссылок и семантически правильно.
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; }
Архив с исходником.
Ссылка доступна только для зарегистрированных пользователей!