—»     —»   Анимированные кнопки-пузырьки на CSS3
  Раздел: Кнопки, Руководства, CSS/Style Sheets   Комментариев: 1  

Анимированные кнопки-пузырьки на CSS3

Сегодня мы с вами будем разрабатывать полезный набор кнопок-пузырьков с множественными фоновыми изображениями и анимациями на CSS3. С помощью такого набора вы с лёгкостью сможете превратить любую гиперссылку на странице в привлекательную, анимированную пузырьками кнопку, лишь задав ей определенный класс. Здесь не требуется ничего связанного с javascript. Мы предлагаем вам 4 цветовые схемы и три размера путём добавление дополнительного имени класса.

HTML-код

Для того чтобы превратить обычную ссылку на странице в забавную анимированную CSS3-кнопку, вам надо лишь добавить класс .button и один из поддерживаемых цветов. Ниже вы можете посмотреть несколько примеров:

<a href="#" class="button blue big">Download</a>
<a href="#" class="button blue medium">Submit</a>
<a href="#" class="button small blue rounded">Submit</a>

Нам доступны классы для 4-х цветов: синий, зелёный, оранжевый и серый. Остальные классы, которые могут быть привязаны к ссылкам выше, опциональны. Вы можете выбрать размер (маленький, средний или большой), а также ещё один класс «rounded», который ещё больше закругляет углы кнопки.

Имена классов уже выбраны, поэтому их будет очень просто запомнить, но также стоит помнить, что с такими именами повышается вероятность смешивания с уже имеющимися классами в коде страницы.

Если при внедрении кнопок вы заметили, что они выглядят не так, как должны, то попробуйте изменить имена классов (используйте НЕ blue, big, rounded и так далее). Используйте что-нибудь более уникальное. Для этого вам надо будет отредактировать файл buttons.css

Теперь давайте более подробно рассмотрим классы CSS.

Анимированные кнопки-пузырьки на CSS3

CSS-код

Весь CSS-код, относящийся к анимированным кнопкам, располагается в файле buttons.css. Это значительно упрощает процесс внедрения и использования.

Помните, что в коде, предложенном ниже, мы указали 2 версии одного и того же параметра в нескольких местах. Это нужно для заполнения разницы восприятия браузерами кода CSS. Они парсят правила по очереди, а затем применяют их, игнорируя те, что не распознают. Таким образом, у нас будет версия кода, которую распознает любой браузер, а также мы заполним разницу между новыми браузерами, воспринимающими CSS3 и более старыми версиями.

Buttons/buttons.css

.button{
    font:15px Calibri, Arial, sans-serif;

    /* A semi-transparent text shadow */
    text-shadow:1px 1px 0 rgba(255,255,255,0.4);

    /* Overriding the default underline styling of the links */
    text-decoration:none !important;
    white-space:nowrap;

    display:inline-block;
    vertical-align:baseline;
    position:relative;
    cursor:pointer;
    padding:10px 20px;

    background-repeat:no-repeat;

    /* The following two rules are fallbacks, in case
       the browser does not support multiple backgrounds. */

    background-position:bottom left;
    background-image:url('button_bg.png');

    /* CSS3 background positioning property with multiple values. The background
       images themselves are defined in the individual color classes */

    background-position:bottom left, top right, 0 0, 0 0;
    background-clip:border-box;

    /* Applying a default border radius of 8px */

    -moz-border-radius:8px;
    -webkit-border-radius:8px;
    border-radius:8px;

    /* A 1px highlight inside of the button */

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

    /* Animating the background positions with CSS3 */
    /* Currently works only in Safari/Chrome */

    -webkit-transition:background-position 1s;
    -moz-transition:background-position 1s;
    -o-transition:background-position 1s;
    transition:background-position 1s;
}

.button:hover{

    /* The first rule is a fallback, in case the browser
       does not support multiple backgrounds
    */

    background-position:top left;
    background-position:top left, bottom right, 0 0, 0 0;
}

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

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

Как будет видно через секунду, у каждой кнопки есть 4 фоновых изображения. Хотя это может вызвать сомнения, спешим сообщить вам, что с сервера будет запрошен лишь один файл. Первые два фоновых изображения - это нижняя левая и верхняя правая части пузырька, которые можно будет рассмотреть на изображении ниже, а последующие два изображения – это просто CSS-градации.

Анимированные кнопки-пузырьки на CSS3

Как уже было указано выше, фон пузырька отображён в виде 2 отдельных изображений, смещённых при помощи параметра background-position. Используя параметр перехода CSS3, мы определяем анимацию, в которой две версии фонового изображения будут простираться от верхней части до нижней, что создаст эффект мыльного пузырька при наведении курсора мыши.

Теперь рассмотрим классы размера и закруглённых углов.

/* The three buttons sizes */

.button.big        { font-size:30px;}
.button.medium    { font-size:18px;}
.button.small    { font-size:13px;}

/* A more rounded button */

.button.rounded{
    -moz-border-radius:4em;
    -webkit-border-radius:4em;
    border-radius:4em;
}

Здесь у нас 3 классовых имени (small, medium, big и rounded). Кнопки масштабируются автоматически в зависимости от текста. Таким образом, здесь у нас отсутствуют параметры ширины и высоты.

Теперь пойдём дальше – к классам цвета. Ниже мы приведём пример определения лишь синей кнопки, но знайте, что все остальные методы абсолютно такие же.

/* BlueButton */

.blue.button{
    color:#0f4b6d !important;

    border:1px solid #84acc3 !important;

    /* A fallback background color */
    background-color: #48b5f2;

    /* Specifying a version with gradients according to */

    background-image:    url('button_bg.png'), url('button_bg.png'),
                        -moz-radial-gradient(    center bottom, circle,
                                                rgba(89,208,244,1) 0,rgba(89,208,244,0) 100px),
                        -moz-linear-gradient(#4fbbf7, #3faeeb);

    background-image:    url('button_bg.png'), url('button_bg.png'),
                        -webkit-gradient(    radial, 50% 100%, 0, 50% 100%, 100,
                                            from(rgba(89,208,244,1)), to(rgba(89,208,244,0))),
                        -webkit-gradient(linear, 0% 0%, 0% 100%, from(#4fbbf7), to(#3faeeb));
}

.blue.button:hover{
    background-color:#63c7fe;

    background-image:    url('button_bg.png'), url('button_bg.png'),
                        -moz-radial-gradient(    center bottom, circle,
                                           rgba(109,217,250,1) 0,rgba(109,217,250,0) 100px),
                        -moz-linear-gradient(#63c7fe, #58bef7);

    background-image:    url('button_bg.png'), url('button_bg.png'),
                        -webkit-gradient(    radial, 50% 100%, 0, 50% 100%, 100,
                                            from(rgba(109,217,250,1)), to(rgba(109,217,250,0))),
                        -webkit-gradient(linear, 0% 0%, 0% 100%, from(#63c7fe), to(#58bef7));
}

Каждое имя класса определяет уникальный набор параметров – цвет кнопки, тень текста, а также набор фоновых изображений. Помните, что мы используем параметр фона для того чтобы добавить несколько изображений к кнопке. Они нанесены друг на друга, и лишь одно отображается поверх всех.

На данный момент только браузеры семейства Mozilla и WebKit поддерживает градации CSS, и то – с сильными различиями. Остальные браузеры будут отображать откатную версию цвета. Возможно, вы заметили, что мы не включили версию правил градаций с предварительно внесёнными префиксами. Это потому, что градации пока что не являются официальной частью CSS-спецификации, и пока что разработчики не пришли к единому варианту поддержки.

Во фрагменте кода, представленном выше, вы можете видеть определение линейной градации и радиальной поверх неё. Для того, чтобы градации плавно смешивались между собой как в браузерах семейства WebKit, так и в Mozilla, мы определяем радиальную градацию посредством RGBA, что делает внешние цвет градации полностью прозрачными.

На этом наши анимированные кнопки-пузырьки на CSS завершены!

В заключение

Данные кнопки полностью разработаны на CSS, и поэтому их крайне легко встроить практически в любой код. Просто скопируйте папку buttons куда-нибудь в корневую папку на сервере или в папку с веб-сайтом. Вы можете создавать собственные цвета и формы путём редактирования CSS-файла.

Смотреть демо | Скачать архивом
Внимание! У вас нет прав для просмотра скрытого текста.
Обнаружили ошибку или мёртвую ссылку?
Выделите проблемный фрагмент мышкой и нажмите CTRL+ENTER.
В появившемся окне опишите проблему и отправьте уведомление Администрации ресурса.
Нужна органическая вечная ссылка из данной статьи? Постовой?
Подробности здесь
Вам понравился материал? Поблагодарить легко!
Будем весьма признательны, если поделитесь этой статьей в социальных сетях:

Ключевые тэги: CSS, кнопки
Опубликовал Mysterious Master   Прочитано (раз): 12583   |   Оставлено комментариев: 1
Источник материала / оригинал статьи   Распечатать
Другие статьи и новости по теме:
Комментарий #1: 2 июня 2011 @ 08:42
Написал: Galay — группа: Гости  
На сайте с: --   |   Публикаций: 0   |   Комментариев: 0
ICQ: --- не указано ---
круть!
Добавление комментария
Уважаемые пользователи!
При добавлении комментариев на сайт Вам следует учитывать следующее - все комментарии проверяются Администрацией на предмет отсутствия спама. При обнаружении признаков спама, в оставленном Вами комментарии, сам комментарий будет незамедлительно удалён, а Ваш IP-адрес будет забанен без предупреждения! Учётные записи пользователей, рассылающих спам, блокируются/удаляются без права последующего восстановления.

С уважением, Администрация сайта.
* = поля обязательны к заполнению
Полужирный Наклонный текст Подчеркнутый текст Зачеркнутый текст | Выравнивание по левому краю По центру Выравнивание по правому краю | Вставка смайликов Выбор цвета | Скрытый текст Вставка цитаты Преобразовать выбранный текст из транслитерации в кириллицу Вставка спойлера
Вопрос : Назовите месяц December по-русски
Подтверждение кода безопасности :

Включите эту картинку для отображения кода безопасности
обновить, если не виден код


Спонсоры проекта
Баннер в сайдбаре 1 (сквозной)
Баннер в сайдбаре 2 (сквозной)
Спонсоры проекта
Баннер в сайдбаре 3 (сквозной)
Баннер в сайдбаре 4 (сквозной)
Популярные публикации







Свежие шаблоны сайтов каждый день
С миру по нитке
«    Март 2023    »
ПнВтСрЧтПтСбВс
 12345
6789101112
13141516171819
20212223242526
2728293031