Создаем кнопки при помощи  CSS3 и RGBA

Создаем кнопки при помощи CSS3 и RGBA

Тэги: , , ,

Автор: alexnjoy | Категория: Web Design | Комментарии: 8 | 25-02-2010

Обожаю CSS3. Одна из моих любимых функций в CSS3 — добавление RGBA, цветовой режим, который добавляет альфа-смешивания. Убив не мало времени, изучая эти функции css3 и испытывая их на своих проектах, я научился создавать красивые кнопки при помощи css3 и RGBA. Чтобы показать вам возможности css3, я создал для вас пару примеров кнопок в css3.

Создаем кнопки при помощи  CSS3 и RGBA

CSS3 Кнопка


Вот то, что должно у нас получится:

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

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

Это простая кнопка, созданная при помощи прозрачного PNG фона (для градиента), рамки, радиуса рамки, тени от рамки и тени от текста... все это собрано при помощи css3. А вот и сам код, который вам нужен для создания этой суперской кнопки:

    .awesome{
    background: #222 url (/images/alert-overlay.png) repeat-x;
    display: inline-block;
    padding: 5px 10px 6px;
    color: #fff;
    text-decoration: none;
    font-weight: bold;
    line-height: 1;
    — moz-border-radius: 5px;
    — webkit-border-radius: 5px;
    — moz-box-shadow: 0 1px 3px #999;
    — webkit-box-shadow: 0 1px 3px #999;
    text-shadow: 0 -1px 1px #222;
    border-bottom: 1px solid #222;
    position: relative;
    cursor: pointer;
    }

Не слишком убого, если учитывать то, что это почти полностью сделано при помощи CSS. Я мог бы использовать CSS3 и сделать градиент, но в настоящее время только Safari поддерживает эту функцию.

Масштаб и RGBA


Отлично, мы создали нашу кнопку и выглядит она отлично, но поскольку мы используем «статические» цвета Hex (шестнадцатеричное значение), то наша кнопка будет плохо масштабироваться. Что делать, если нам нужно будет использовать ее на черном и белом фоне? А как насчет других цветов? Вот тут то нам и пригодится RGBA.

Маленькая деталь. Обратите внимание на кнопку с темным фоном. Я исправил тень от кнопки при помощи RGBA цветов.

Маленькая деталь. Обратите внимание на кнопку с темным фоном. Я исправил тень от кнопки при помощи RGBA цветов.

При помощи RGBA и CSS3, я сейчас создам 5 дополнительных цветов и 2 дополнительных размера, и заставлю ее работать на любом заднем фоне. Смотрите, все что нам нужно, это изменить всего четыре линии CSS кода:

    .awesome {
    ...
    — moz-box-shadow: 0 1px 3px rgba (0,0,0,0.5);
    — webkit-box-shadow: 0 1px 3px rgba (0,0,0,0.5);
    text-shadow: 0 -1px 1px rgba (0,0,0,0.25);
    border-bottom: 1px solid rgba (0,0,0,0.25);
    ...
    }

Вот, теперь у нас есть супер клевые кнопки с добавленным альфа-смешиванием. Выглядит так же? Это потому, что у нас стоит 25% черная рамка, 50% тень от рамки и 25% тень от текста, вместо привычных нам Hex значений. Это позволит нам увеличить нашу кнопку для разных фонов, цветов и размеров. Со значениями RGBA, мы имеем слои цветов, вместо отдельных цветов, чем то похеже на то, как создаются прозрачные тени в Photoshop.

Добавляем цвета и размеры


Мы довели нашу кнопку до нужного нам состояния, давайте ка добавим несколько цветов и размеров. Вот CSS код для этого:

    /* Razmeru ---------- */
    .small.awesome {
    font-size: 11px;
    }

    .medium.awesome {
    font-size: 13px;
    }

    .large.awesome {
    font-size: 14px;
    padding: 8px 14px 9px;
    }

    /* Cveta ---------- */
    .blue.awesome {
    background-color: #2daebf;
    }

    .red.awesome {
    background-color: #e33100;
    }

    .magenta.awesome {
    background-color: #a9014b;
    }

    .orange.awesome {
    background-color: #ff5c00;
    }

    .yellow.awesome {
    background-color: #ffb515;
    }

Финал


Вот и все. У нас есть 6 кнопок, у каждой 3 варианта размера. Вот скрин с результатом:
css3 кнопки

    Как вам "Создаем кнопки при помощи CSS3 и RGBA" ?
    Следи за обновлениями Desigzo, подпишись на RSS или Twitter!

Комментарии (8)

Надо было сделать еще демо страничку для всех кнопок, тогда вообще было бы айс

[Ответить]

alexnjoy ответил:

времени не было... нужно будет как то )

[Ответить]

Ты наверно пост не спи...л за бугром)))))) ха... убил время на изучение css3? чувак... Хоть бы автора указал штоль для приличия)

[Ответить]

alexnjoy ответил:

Так, давайте без оскорблений. CSS3 я не изучал, я его и так знаю. Да, это перевод забугорного поста и я это не скрываю, но кого это колышет?? Я перевел и преподнес статью для русскоязычного читателя. Ставить ссылку на оригинал или нет — сугубо мое личное дело, так как перевод мой, блог этот тоже мой и правила мои. И я не спи...л, а перевел, это разные вещи.

[Ответить]

smile ответил:

пішла перекладати пост українською) доносити інформацію для україномовних користувачів)

То кажете автор та ссилка не обов'язкові? :)

[Ответить]

alexnjoy ответил:

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

«Смотрите как тень от кнопки отображается на белом и темном фоне... мы это исправим.»

В самом верху урока... что именно не так с тенью не пойму) на картинке вроде всё красиво как на белом фоне так и на черном)) что исправлять-то?)

ЗЫ. белая тень на черном фоне очень смотриться кстати!

[Ответить]

alexnjoy ответил:

исправим то, что цвет тени от кнопок одинаковая, не зависимо от фона... далее она будет изменятся (на темном фоне она будет темнее)

[Ответить]

Оставь комментарий