Кнопки в CSS

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

Кнопку на веб-странице можно создать двумя способами — с помощью тега <input> и тега <button>.

Рассмотрим вначале добавление кнопки через <input>.

Синтаксис.

<input type="button" атрибуты>

Атрибуты

  • name – Имя кнопки, предназначено для того, чтобы обработчик формы мог его идентифицировать.
  • value – Значение кнопки и одновременно надпись на ней.

Пример кнопки созданной через тэг <input>

<input type="button" name="button_1" value=" Кнопка ">

Второй способ создания кнопки основан на использовании тега <button>. Он по своему действию напоминает результат, получаемый с помощью тега <input>. Но в отличие от него предлагает расширенные возможности по созданию кнопок. Например, на подобной кнопке можно размещать любые элементы HTML включая изображения и таблицы.

Синтаксис.

<button атрибуты>Надпись на кнопке</button>

Пример кнопки созданной через тэг <button>

<button>Кнопка с текстом</button> 
<button><img src="images/img.jpg" alt="Текст который будет показан если картинка не загрузиться" style="vertical-align:middle"> Кнопка с рисунком </button>


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


Но эти кнопки будут выглядеть некрасиво, поэтому добавляем CSS стили.

Создаем кнопку и задаем ей класс but.

<button class="but" ><span>Вход</span></button>

Приукрасим ее.

.but {
  border-radius: 4px; /*Границы закруглены*/
  background-color:  #3e8e41; /*Фон*/
  border: none; /*Границ нет*/
  color: #FFFFFF; /*Цвет текста*/
  text-align: center; /*Расположение текста*/
  font-size: 28px; /*Размер текста*/
  padding: 20px; /*Внутрение отступы*/
  width: 200px; /*Ширина*/
  transition: all 0.6s; /* Устанавливает эффект перехода между двумя состояниями элемента*/
  margin: 5px; /*Внешние отступы*/
}
.but span {
  position: relative;
  transition: 0.5s;
}

Чтобы кнопка была более живой мы используем псевдокласс :hover

:hover – Определяет стиль элемента при наведении на него курсора мыши, но при этом элемент еще не активирован, иными словами кнопка мыши не нажата.

.but:hover span {
  padding-right: 25px;
}

Мы видим что при наведении на кнопку надпись передвигается направо, теперь добавим пару символов при помощи псевдо элемента :after

:after – псевдо элемента, который используется для вывода желаемого текста после содержимого элемента, к которому он добавляется. Псевдо элемент:after работает совместно со свойством content.

.but span:after {
  content: '»';
  position: absolute;
  opacity: 0;
  right: -20px;
  transition: 0.5s;
}
.but:hover span:after {
  opacity: 1;
  right: 0;
}

Впрочем кнопка готова но что бы она стала еще привлекательней мы создадим эффект нажатия при помощи псевдокласса :active.

.but:active {
  background-color: #f45111;
  box-shadow: 0 5px #666;
  transform: translateY(5px);
}

transform: translateY(5px); – Сдвигает элемент по вертикали на указанное значение. Положительное значение сдвигает вниз, отрицательное вверх.

Наша кнопка готова!!!