Блог веб-разработчика: в помощь программистам

Кнопки на сss3

В данном уроке, я покажу как сделать удивительно красивые кнопки с помощью css3 и совершенно без js.

Вся наша работа будет заключаться в одном css файле, который удобно подключать к своему проекту, в случае необходимости, и одному файлу с картинкой.

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

И так, основной файл:

my.html

<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>

И наш основной файл стилей для кнопок:

buttons/buttons.css

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

    /* полупрозрачная тень текста */
    text-shadow:1px 1px 0 rgba(255,255,255,0.4); 

    text-decoration:none !important;
    white-space:nowrap;

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

    background-repeat:no-repeat;
    background-position:bottom left;
    background-image:url('button_bg.png');
    background-position:bottom left, top right, 0 0, 0 0;
    background-clip:border-box;

    /* по умолчанию радиус закругления будет 8px */

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

    /* 1px край вокруг кнопки. */

    -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{

    /* первое правило задано для тех брайзеров,
       которые не понимают css3 и соответственно
      не могут работать с несколькими фонами,    */

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

/* 3 размера кнопок */

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

/* создадим и закругленную кнопочку */

.button.rounded{
    -moz-border-radius:4em;
    -webkit-border-radius:4em;
    border-radius:4em;
}
/* Синяя кнопка */

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

    border:1px solid #84acc3 !important;

    /* фон на случай сбоя в загрузке картинки */
    background-color: #48b5f2;

    /* Зададим градиент + фон */

    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));
}

Вы спросите: – А где button_bg.png, который использован в css файле?

А взять его можно в готовом архиве с примером

  • Спасибо!
    Отличные кнопки получились.

You can follow any responses to this entry through the RSS 2.0 feed.