
Кнопки в 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); – Сдвигает элемент по вертикали на указанное значение. Положительное значение сдвигает вниз, отрицательное вверх.
Наша кнопка готова!!!