Полезное в сети

Всегда в теме

Статистика


Яндекс.Метрика


Онлайн всего: 1
Гостей: 1
Пользователей: 0

Рекомендуем



Главная » 2013 » Март » 17 » Навигационное меню с визуальным эффектом на CSS3


12:21
Навигационное меню с визуальным эффектом на CSS3

Навигационное меню с визуальным эффектом на CSS3

В данном уроке мы сделаем навигационное меню с интересным визуальным эффектом используя только CSS. Будут представлены одноуровневый вариант и выпадающая структура. Для создания эффекта будет применяться псевдо-элемент :after с пользовательским атрибутом. 

Примечание: меню полноценно работает в браузерах, поддерживающих CSS3.


demosourse

Для меню используется типовая разметка:

                <nav class="ph-lift">

                               <ul>

                                               <li class="active"><a href="#home" data-title="Основное">Главная</a></li>

                                               <li><a href="#portfolio" data-title="Это сделал я">Мои работы</a></li>

                                               <li><a href="#about" data-title="Любопытствуете?">Кто я?</a></li>

                                               <li><a href="#contact" data-title="Напишите мне">Контакт</a></li>

                               <ul>

                </nav>

 

Обратите внимание, что к каждой ссылке добавлен атрибут data-title, содержащий текст заголовка.

Идея заключается в формировании элемента li со свойством overflow:hidden. Первая часть эффекта при наведении курсора мыши будет заключаться в смене цвета фона и добавлении внутренней тени с плавным переходом.

nav.ph-lift ul li {

    float: left;

    height: 90px;

    line-height: 90px;

    background: white;

    overflow: hidden;

    transition: all.6s ease; }

    nav.ph-lift ul li:hover {

      box-shadow: 0 0 15px rgba(0, 0, 0, 0.3) inset;

      background: teal; }

 

С помощью псевдо-элемента :after генерируется "копия" ссылки, которая позиционируется ниже оригинала. Для содержания псевдо-элемента (свойство content) используем атрибут data-title. При наведении курсора мыши ссылка меняет значение свойства margin-top (с применение плавного перехода).

nav.ph-lift ul li a {

  display: block;

  text-decoration: none;

  color: #007e7e;

  padding: 0 45px;

  margin-top: 0;

  transition: all.6s ease; }

nav.ph-lift ul li:hover a {

  margin-top: -90px;

  color: white;

  text-shadow: 0 1px 2px  black; }

  nav.ph-lift ul li a:after {

    content: attr(data-title);

    display: block; }

В случае выпадающего меню мы не можем использовать для элемента  li свойство {overflow:hidden}. Поэтому изменим разметку:

                <nav class="ph-lift1">

                               <ul>

                                               <li class="active"><a href="#home" data-title="Основное"><span data-title="Основное">Главная</span></a>

                                                               <ul>

                                                                              <li><a href="#" ><span data-title="Самое-самое...">Выделенное</span></a></li>

                                                                              <li><a href="#" ><span data-title="Особенно нравится">Лучшие 10</span></a></li>

                                                               </ul>

                                               </li>

                                              

                                               <li><a href="#portfolio" ><span data-title="Это сделал я">Мои работы</span></a>

                                                               <ul>

                                                                              <li><a href="#" ><span data-title="Для сайта">Веб дизайн</span></a></li>

                                                                              <li><a href="#" ><span data-title="Рисование">Иллюстрации</span></a></li>

                                                                              <li><a href="#" ><span data-title="Для фона">Шаблоны</span></a></li>

                                                               </ul>

                                                              

                                               </li>

                                               <li><a href="#" ><span data-title="Хотите узнать?">Кто я?</span></a>

                                                              

                                               </li>

                                               <li><a href="#" ><span data-title="Свяжитесь со мной">Контакт</span></a>

                                                               <ul>

                                                                              <li><a href="#" ><span data-title="Написать мне">Email</span></a></li>

                                                                              <li><a href="#about" ><span data-title="Позвонить мне">Skype</span></a></li>

                                                               </ul>

                                               </li>

                               <ul>

                </nav>

Основная идея формирования эффекта остается той же. Теперь свойство overflow:hidden для элемента a, а псевдо-элемент генерируется для элемента span.

nav.ph-lift1 > ul > li {

   float: left; }

 nav.ph-lift1 ul li {

   height: 80px;

   line-height: 80px;

   background: white;

   -webkit-transition: all.6s ease;

   -moz-transition: all.6s ease;

   -o-transition: all.6s ease;

   -ms-transition: all.6s ease;

   transition: all.6s ease; }

   nav.ph-lift1 ul li ul {

     max-height: 0;

     -webkit-transition: all.6s ease;

     -moz-transition: all.6s ease;

     overflow: hidden;

     display: block; }

   nav.ph-lift1 ul li:hover {

     box-shadow: 0 0 15px rgba(0, 0, 0, 0.3) inset;

     background: darkolivegreen; }

   nav.ph-lift1 ul li:hover ul {

     max-height: 300px; }

   nav.ph-lift1 ul li a {

     display: block;

     overflow: hidden;

     text-decoration: none;

     color: #546a2f;

     height: 80px; }

   nav.ph-lift1 ul li ul li a {

     color: #7e7e00; }

   nav.ph-lift1 ul li ul li:hover {

     background: olive; }

   nav.ph-lift1 ul li a span {

       -webkit-transition: all.6s ease;

       -moz-transition: all.6s ease;

       -o-transition: all.6s ease;

       -ms-transition: all.6s ease;

       transition: all.6s ease;

       display: block;

       padding: 0 40px; }

   nav.ph-lift1 ul li:hover > a span {

     margin-top: -80px;

     color: white;

     text-shadow: 0 1px 2px  black; }

     nav.ph-lift1 ul li a span:after {

       content: attr(data-title);

       display: block; }

Данный урок подготовлен для вас командой сайта ruseller.com
Источник урокаpehaa.com/2012/08/pseudo-elements-with-custom-attributes-to-create-a-css3-menu-that-will-bounce/
ПеревелСергей Фастунов

Категория: CSS//HTML//JS | Просмотров: 449 | Добавил: Admin | Теги: Навигационное меню с визуальным эфф | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]

Поиск

Вход

Гость
  • Вход
  • Регистрация
  • Читаемое

    Категории

    Заходи не жди