Хаки и Скрипты Next Generation CMS

Будем делать красивую кнопку при помощи CSS3

irbees2008 irbees2008 Опубликовано - 6 - февраля Кнопки и иконки
4725 - 0
  • Адаптировал: irbees2008
  • Уровень сложности исполнения: Справочник

Рассмотрим примеры создания CSS-кнопок но без использования картинок.
Для создания красивых кнопок с градиентом и закругленными углами веб-мастерам приходилось использовать картинки с прозрачными областями или сценарии JavaScript (jQuery). К счастью современные браузеры стали поддерживать CSS3 и появилась возможность создавать красивые кнопки более естественным путем через стили.
CSS3 позволяет писать элегантный и простой код, который полностью удовлетворяет требованиям дизайнеров. Кроме того, используемые приемы обладают урезанной совместимостью со старыми браузерами - в любом случае будет отображаться кнопка (только без дополнительных рюшечек).

Для создания кнопки используется тег button

Код:
<button>Щелкни меня</button>


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

Код:
<button class="blue-btn">Щелкни меня</button>
Код:
button.blue-btn{
background: #2e8ce3;
padding: 7px 30px;
font-size:13px;
font-weight: bold;
color:#fff;
text-align: center;
border:solid 1px #73c8f0;
}

Теперь намного лучше - голубая кнопка с белым текстом смотрится интереснее.

Переходим к более продвинутым приемам. Закруглим уголки у кнопки. Здесь наблюдается очень радостная картина, все современные браузеры, включая IE9, уже поддерживают правило border-radius. На всякий случай еще можно использовать старые стили -moz-border-radius и -webkit-border-radius, как временную меру.
Код:
	border-radius: 5px;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;

Добавим немного градиента. К сожалению, пока придется использовать специфичные теги для отдельных браузеров (Chrome, Firefox, Safari). Для градиента нужно указывать начальные и конечные точки для перехода цветов.

Код:
background: -moz-linear-gradient(0% 100% 90deg,#2e8ce3, #73c2fd);
background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#73c2fd), to(#2e8ce3));

Добавим небольшую белый ободок, чтобы кнопка была более выпуклой.

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

Новое свойство box-shadow создает эффект тени. В нашем примере мы используем параметр inset, что позволяет добавить белую окантовку шириной в 1 пиксель в верхней части кнопки, но не выходя за пределы границы кнопки.

Для увеличения контрастности добавим темный цвет в нижней части кнопки.

Код:
border-bottom-color:#196ebb;

И, наконец, последний штрих. Добавим для красоты тень не только к кнопке, но и для текста внутри кнопки.

Код:
text-shadow: 0 -1px 0 #196ebb;

Я обратил внимание, что цветная кнопка выглядит статичной в Chrome, хотя в IE8/9 кнопка нормально нажимается. Нужно добавить немного реалистичности. Например, подчеркивание текста при наведении мышкой и эффект нажатия при щелчке. Для этого используются правила :hover и :active

Код:
button.blue-btn7:hover {
text-decoration: underline;
}

button.blue-btn7:active {
position: relative;
top: 1px;
}

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

Зададим начальные параметры псевдокнопки.

Код:
.unibutton {
display: inline-block;
outline: none;
cursor: pointer;
text-align: center;
text-decoration: none;
font: 14px/100% Arial, Helvetica, sans-serif;
padding: .5em 2em .55em;
text-shadow: 0 1px 1px rgba(0,0,0,.3);
-webkit-border-radius: .5em;
-moz-border-radius: .5em;
border-radius: .5em;
-webkit-box-shadow: 0 1px 2px rgba(0,0,0,.2);
-moz-box-shadow: 0 1px 2px rgba(0,0,0,.2);
box-shadow: 0 1px 2px rgba(0,0,0,.2);
margin:30px;
}
.unibutton:hover {
text-decoration: none;
}
.unibutton:active {
position: relative;
top: 1px;
}
Теперь создадим подкласс и зададим цвет кнопкам, причем мы можем создавать сколь угодно много таких подклассов и делать разноцветные кнопки:

Код:
.orange {
color: #FFF;
border: solid 1px #da7c0c;
background: #f78d1d;
background: -webkit-gradient(linear, left top, left bottom, from(#faa51a), to(#f47a20));
background: -moz-linear-gradient(top, #faa51a, #f47a20);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#faa51a', endColorstr='#f47a20');
}
.orange:hover {
background: #f47c20;
background: -webkit-gradient(linear, left top, left bottom, from(#f88e11), to(#f06015));
background: -moz-linear-gradient(top, #f88e11, #f06015);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f88e11', endColorstr='#f06015');
}
.orange:active {
color: #fcd3a5;
background: -webkit-gradient(linear, left top, left bottom, from(#f47a20), to(#faa51a));
background: -moz-linear-gradient(top, #f47a20, #faa51a);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f47a20', endColorstr='#faa51a');
}
Мы задаем любому HTML-объекту стиль кнопки и подстиль цвета и получаем результат:

Код:
<a href="#" class="unibutton orange">Оражневая кнопка</a>

вроде все понятно ,а что не понятно пишите комменты

Можешь почитать и вот эту статейку "Форматируем дату новости на TWIGе"

Опрос

Ваше мнение

какой форум лучше для вас
Результаты

Последние комментарии

Теги

Anything in here will be replaced on browsers that support the canvas element

Статистика

  • Caйту: 4615 дней
  • Новостей: 568
  • Комменты: 257
  • Зарегистрированно : 673
  • Онлайн всего: [16]
  • Гости: [15]
  • Поисковики: [1] Яндекс
  • Были сегодня : [2] Яндекс, Google
  • SQL запросов: 30
  • Генерация страницы: 0.325сек
  • Потребление памяти: 6.237 Mb 
  •   Яндекс.Метрика