Кнопки CSS3 с закругленными краями и иконками


При создании сайта или веб-приложения всегда нужны красивые и стильные кнопки. Обычно кнопка на сайте это небольшое графическое изображение, созданное в Photoshop. Однако с появлением стандарта CSS3, теперь как никогда стало проще создавать красивые и стильные кнопки. Всего лишь описав кнопку правилами CSS, мы заставляем браузер отображать её на стороне клиента в реальном времени. Получаем очевидный выигрыш: сокращаем время разработки, увеличиваем скорость загрузки страницы, уменьшаем число файлов.

В этой статье вы узнаете, как создать классные CSS3 кнопкивсего за несколько шагов.

Сегодня мы создадим кнопки с закругленными краями и с иконками при помощи CSS3. Возможно кто-то подумает, что такие кнопки очень легко создать в Photoshop, но не спешите делать выводы. Прочитаете до конца, и вы увидите те преимущества которые дает использование CSS. Чтобы создать кнопки мы будем использовать градиенты, тении округления, которые доступны в CSS3. В качестве иконок используем обычные текстовые символы, задавая их HTML код.

Как это выглядит

Кнопки CSS3 с закругленными краями и иконками

Демо

Начальная разметка

Основа кнопки задается в стиле button. Достаточно назначить этот стиль обычном тегу, и браузер обрисует основу самой кнопки.

<a href="" class="button">Кнопка</a>

Здесь мы получаем обычную кнопку без иконки.

Чтобы добавить нужную иконку, нужно просто добавить нужный стиль. У меня прописаны несколько стилей с соответствующими иконками, но вы можете легко создавать свои, нужные вам стили кнопок.

<a href="" class="button add">Добавить</a>

Здесь мы получаем кнопку плюс иконку «добавить».

Комбинируя назначение стилей можно получить различные варианты кнопок.

CSS

Ниже мы создаем стили, используемые для создания кнопок и иконок:

 

.button
{
display: inline-block;
white-space: nowrap;
background-color: #ccc;
background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#ccc));
background-image: -webkit-linear-gradient(top, #eee, #ccc);
background-image: -moz-linear-gradient(top, #eee, #ccc);
background-image: -ms-linear-gradient(top, #eee, #ccc);
background-image: -o-linear-gradient(top, #eee, #ccc);
background-image: linear-gradient(top, #eee, #ccc);
filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#eeeeee', EndColorStr='#cccccc');
border: 1px solid #777;
padding: 0 1.5em;
margin: 0.5em;
font: bold 1em/2em Arial, Helvetica;
text-decoration: none;
color: #333;
text-shadow: 0 1px 0 rgba(255,255,255,.8);
-moz-border-radius: .2em;
-webkit-border-radius: .2em;
border-radius: .2em;
-moz-box-shadow: 0 0 1px 1px rgba(255,255,255,.8) inset, 0 1px 0 rgba(0,0,0,.3);
-webkit-box-shadow: 0 0 1px 1px rgba(255,255,255,.8) inset, 0 1px 0 rgba(0,0,0,.3);
box-shadow: 0 0 1px 1px rgba(255,255,255,.8) inset, 0 1px 0 rgba(0,0,0,.3);
}

.button:hover
{
background-color: #ddd;
background-image: -webkit-gradient(linear, left top, left bottom, from(#fafafa), to(#ddd));
background-image: -webkit-linear-gradient(top, #fafafa, #ddd);
background-image: -moz-linear-gradient(top, #fafafa, #ddd);
background-image: -ms-linear-gradient(top, #fafafa, #ddd);
background-image: -o-linear-gradient(top, #fafafa, #ddd);
background-image: linear-gradient(top, #fafafa, #ddd);
filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#fafafa', EndColorStr='#dddddd');
}

.button:active
{
-moz-box-shadow: 0 0 4px 2px rgba(0,0,0,.3) inset;
-webkit-box-shadow: 0 0 4px 2px rgba(0,0,0,.3) inset;
box-shadow: 0 0 4px 2px rgba(0,0,0,.3) inset;
position: relative;
top: 1px;
}

.button:focus
{
outline: 0;
background: #fafafa;
} 

.button:before
{
background: #ccc;
background: rgba(0,0,0,.1);
float: left;
width: 1em;
text-align: center;
font-size: 1.5em;
margin: 0 1em 0 -1em;
padding: 0 .2em;
-moz-box-shadow: 1px 0 0 rgba(0,0,0,.5), 2px 0 0 rgba(255,255,255,.5);
-webkit-box-shadow: 1px 0 0 rgba(0,0,0,.5), 2px 0 0 rgba(255,255,255,.5);
box-shadow: 1px 0 0 rgba(0,0,0,.5), 2px 0 0 rgba(255,255,255,.5);
-moz-border-radius: .15em 0 0 .15em;
-webkit-border-radius: .15em 0 0 .15em;
border-radius: .15em 0 0 .15em;
}

/* Hexadecimal entities for the icons */

.add:before
{
content: "\271A";
}

.edit:before
{
content: "\270E";
}

.delete:before
{
content: "\2718";
}

.save:before
{
content: "\2714";
}

.email:before
{
content: "\2709";
}

.like:before
{
content: "\2764";
}

.next:before
{
content: "\279C";
}

.star:before
{
content: "\2605";
}

.spark:before
{
content: "\2737";
}

.play:before
{
content: "\25B6";
}

 

Зачем использовать стили, а не изображения?

Используя стили CSS, мы получаем несколько преимуществ, таких, как:

  • Скорость. Более быстрая загрузка. Потому что мы используем только текст, который существенно меньше по размеру, чем изображение.
  • Масштабируемость. Мы не привязаны к размерам, а также к шрифтам. Мы легко можем изменять размеры кнопки и текста, и назначать разные шрифты.
  • Гибкость. Стили легко изменяются, например все цвета, линии, тени, градиенты легко обновляются при помощи CSS.

Скорость

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

Масштабируемость

Чтобы изменить размеры кнопки, вам нужно изменить всего лишь один параметр font-size

font: bold 1em/2em Arial, Helvetica;

Отображение и поддержка браузерами

Иконки на этих кнопках создаются при помощи псевдо класса :before. Поэтому вы не увидите иконки на кнопках в браузерах IE7 и ниже. И хотя сами кнопки будут видны, но тени и округления они также потеряют.

В различных операционных системах и браузерах иконки будут отличаться в процессе отображения.

Заключение.

Надеюсь, вам понравились кнопки, созданные при помощи CSS3. Если у вас есть замечания, можете свободно оставить их в комментариях. Спасибо за внимание!

Реклама
Поделиться
Качественные премиум темы и шаблоны для Вашего сайта:

Смотреть полный каталог качественных тем и шаблонов

Здесь Вы можете выбрать из более чем 46 000 готовых дизайнов. Шаблоны сайтов + установка + хостинг + персонализация + поисковая оптимизация + копирайтинг — все эти услуги вы всегда можете получить от профессионалов мирового уровня!

Один отзыв

  1. Полбутылки22/11/2011

Добавить коментарий

один × пять =