Оригінальна публікація: CSS Button Style – Hover, Color, and Background

У цій публікації ми розглянемо стилізацію кнопок за допомогою CSS.

Моя головна задача — роз’яснити використання правил CSS. Ми не будемо розглядати ідеї для стилізування.

Це буде короткий огляд того, як працюють стилі, які властивості часто використовуються та як їх можна поєднувати.

Спершу ви дізнаєтесь, як створити кнопку в HTML. Потім ви вивчите, як позбутись стилізації кнопок за замовчуванням. Вкінці ви коротко дізнаєтесь, як стилізувати кнопки трьох різних станів.

Зміст

  1. Створення кнопки в HTML
  2. Зміна стилізації кнопок за замовчуванням
  3. Зміна кольору фону
  4. Зміна кольору тексту
  5. Зміна краю
  6. Зміна розміру
  7. Стани кнопки
  8. Стилізація стану hover
  9. Стилізація стану focus
  10. Стилізація стану active
  11. Висновок

Розпочнемо!

Як створити кнопку в HTML

Використайте елемент <button>, щоб створити кнопку.

Це доступніший варіант, порівняно із використанням загального контейнера, створеного за допомогою елемента <div>.

У поданому нижче файлі index.html я створила базову структуру для вебсайту та додала одну кнопку:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="style.css">
    <title>CSS Button Style</title>
</head>
<body>
    <button type="button" class="button">Click me!</button>
</body>
</html>

Розберемо рядок <button type="button" class="button">Click me!</button>:

  • Спершу ви додаєте елемент-кнопку, що складається із початкового <button> та кінцевого </button> тегів.
  • Атрибут type="button" у початковому тегу <button> створює активну кнопку. Оскільки ця кнопка не створена для відправки форми, її корисно додати, щоб зробити код чистішим та вберегти від небажаних дій.
  • Атрибут class="button" буде використано, щоб стилізувати кнопку в окремому файлі CSS. Значення button може бути будь-яким іншим. Наприклад, можна було використати class="btn".
  • Текст Click me! — це видимий текст всередині кнопки.

Усі застосовані до кнопки стилі будуть всередині файлу style.css.

Перед стилізацією вмісту HTML потрібно сполучити два файли. Це виконується за допомогою тегу <link rel="stylesheet" href="style.css">, який було використано в index.html.

У файлі style.css я лише додала стилізацію, яка відцентровує кнопку за центром вікна.

Зверніть увагу, що class="button" використовується із селектором .button. Це один зі способів застосувати стилізацію напряму до кнопки.

* {
    box-sizing: border-box;
} 

body {
    display:flex;
    justify-content: center;
    align-items: center;
    margin:50px auto;
}

.button {
    position: absolute;
    top:50%
}

Код зверху призведе до наступного результату:

Screenshot-2022-02-06-at-10.29.02-PM

Стилізація кнопки за замовчуванням залежить від вашого браузера.

Це приклад стилізації кнопок за замовчуванням у браузері Google Chrome.

▫️ Як змінити стилізацію кнопок за замовчуванням

Як змінити колір фону кнопок

Використовуємо властивість background-color та надаємо їй бажане значення, щоб змінити колір фону кнопки.

Використайте background-color:#0a0a23; у селекторі .button, щоб змінити колір фону кнопки.

.button {
    position: absolute;
    top:50%;
    background-color:#0a0a23;
}
Screenshot-2022-02-06-at-10.28.30-PM

Як змінити колір тексту кнопок

Колір тексту за замовчуванням — чорний, тому якщо ви зробите темний фон, то зникне текст.

Важливо, щоб був контраст між кольорами фону та тексту. Це допоможе зробити текст читабельнішим та легшим для очей.

Використовуємо властивість color, щоб змінити колір тексту:

.button {
    position: absolute;
    top:50%;
    background-color:#0a0a23;
    color: #fff;
}
Screenshot-2022-02-06-at-10.28.03-PM

Як змінити край кнопок

Бачите сірий колір навколо кнопки? Це колір краю за замовчуванням.

Позбутися цього можна за допомогою властивості border-color. Потрібно встановити таке ж саме значення, що й значення background-color. Завдяки цьому край має такий ж самий колір, що й фон кнопки.

Також можна повністю видалити край, використовуючи border:none;.

.button {
  position: absolute;
  top:50%;
  background-color:#0a0a23;
  color: #fff;
  border:none;
}
Screenshot-2022-02-06-at-10.27.33-PM

Край кнопки можна округлити, використовуючи властивість border-radius:

.button {
    position: absolute;
    top:50%;
    background-color:#0a0a23;
    color: #fff;
    border:none;
    border-radius:10px;
  }
Screenshot-2022-02-06-at-10.26.57-PM

За допомогою властивості box-shadow можна додати легку тінь навколо кнопки:

 position: absolute;
    top:50%;
    background-color:#0a0a23;
    color: #fff;
    border:none;
    border-radius:10px;
    box-shadow: 0px 0px 2px 2px rgb(0,0,0);
Screenshot-2022-02-06-at-10.25.55-PM

Як змінити розмір кнопок

Всередині кнопки можна створити більше місця, якщо збільшити padding.

Знизу я додала значення 15px до верхнього, нижнього, правого та лівого відступів.

Також я встановила мінімальні висоту та ширину, min-height та min-width відповідно. Кнопки повинні бути достатньо великими для різних пристроїв.

.button {
    position: absolute;
    top:50%;
    background-color:#0a0a23;
    color: #fff;
    border:none; 
    border-radius:10px; 
    padding:15px;
    min-height:30px; 
    min-width: 120px;
  }
Screenshot-2022-02-06-at-10.42.58-PM

▫️ Як стилізувати стани кнопок

Кнопки мають три різні стани:

  • :hover
  • :focus
  • :active

Найкраще, коли вони стилізовані по-різному.

У наступних розділах я коротко опишу кожен стан. Ви також побачите декілька способів стилізації кнопки для кожного стану.

Як стилізувати стан hover

Стан :hover настає, коли користувач наводить мишкою на кнопку, але не натискає на неї.

Щоб кнопка змінювалась, коли на неї наводять мишкою, використовуйте псевдоклас :hover.

Найчастіше за допомогою :hover змінюють фон кнопки.

Щоб ця зміна не була різкою, використайте властивість transition разом із :hover.

Властивість transition допоможе зробити плавніший перехід до стану :hover.

Зміна фону відбудеться дещо швидше, в порівнянні без властивості transition. Крім того, це не буде різати око та дратувати користувача.

.button:hover {
      background-color:#002ead;
      transition: 0.7s;
  }

У прикладі вище я використала значення, завдяки якому кнопка буде світлішою, якщо на неї навести мишкою.

За допомогою властивості transition я створила й час затримки 0.7s, за який відбувається перехід до стану :hover. Це призвело до повільнішого переходу від початкового фону #0a0a23 до #002ead.

hover

Зауважте, що псевдоклас :hover не працює на мобільних пристроях та мобільних застосунках. Використовуйте цей ефект лише для несенсорних пристроїв.

Як стилізувати стан focus

Стан :focus впливає на користувачів клавіатури: він активується, якщо навести на кнопку за допомогою клавіші Tab ().

Після натиснення клавіші Tab ви побачите наступне:

focus-5

Бачите синій контур навколо кнопки під час фокусу?

Для псевдокласу :focus браузери мають стилізацію за замовчуванням (з огляду на навігацію за допомогою клавіатури). Тому краще не видаляти outline повністю.

Однак ви можете створити власну стилізацію, щоб кнопку було легко найти.

Спочатку встановіть контур на transparent.

Після цього ви можете залишити outline-style на solid. Вкінці, використовуючи властивість box-shadow, ви можете додати бажаний колір, коли елемент сфокусований:

 .button:focus {
    outline-color: transparent;
    outline-style:solid;
    box-shadow: 0 0 0 4px #5a01a7;
}
focusend

Ці стилі теж можна об’єднати із властивістю transition, залежно від бажаного результату:

  .button:focus {
    outline-color: transparent;
    outline-style:solid;
    box-shadow: 0 0 0 4px #5a01a7;
    transition: 0.7s;
}
focusend1

Як стилізувати стан active

Стан :active стає активним, якщо натиснути на кнопку.

Гляньте, що відбувається із кнопкою, якщо натиснути на неї після того, як я застосувала та зберегла стилі для станів :hover та :focus:

active-1

Стилі стану :hover застосовані тоді, коли я навожу мишкою.

Стилі стану :focus теж застосовані, тому що коли кнопку натискають, вона переходить в :focus разом із :active.

Однак майте на увазі, що це не одне й те саме.

Стан :focus — це коли елемент сфокусований, а при стані :active користувач натискає на елемент.

Щоб змінити стиль, коли користувач натискає на кнопку, застосуйте стилі до псевдоселектора :active.

У цьому прикладі я змінила колір фону кнопки, коли користувач натискає на неї:

.button:active {
    background-color: #ffbf00;
}
activefinal

Висновок

Що ж! Тепер ви знаєте основи стилізації кнопки за допомогою CSS.

Ми переглянули, як змінити колір фону та тексту кнопок, а також стилізацію при різних станах.

Щоб дізнатись більше про вебдизайн, перегляньте сертифікацію «Адаптивний вебдизайн». Завдяки інтерактивним урокам ви вивчите HTML та CSS, побудуючи 15 практичних та 5 сертифікаційних проєктів.

Дякую, що прочитали. Щасливого програмування!