Очищення (скидання, обнулення) стилів CSS

Привіт:) У цьому пості розповім для чого під час HTML-верстки використовується очищення (обнулення) CSS-стилів.

Відразу почну з прикладу. Нехай є найпростіша HTML-розмітка:

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<title>Document</title>
</head>
<body>
	<nav>
		<a href="#">Menu 1</a>
		<a href="#">Menu 2</a>
	</nav>
	<div>Block 1</div>
	<p>Text 1</p>
	<span>Text 2</span>
</body>
</html>

Якщо у Консолі веб-браузера (наприклад, Firefox або Chrome) проаналізувати елементи <body> або <p>, то виявиться, що для них автоматично були додані відступи margin:

Чому так виходить?

до змісту ↑

Для чого потрібне очищення (скидання, обнулення) стилів CSS

Браузери за замовчуванням застосовують до HTML-елементів свої власні стилі. Наприклад:

  • шрифт заголовків <h1> більший за <h2>, вони обидва виділені напівжирним;
  • шрифт тексту абзаців <p> менший і не виділений напівжирним шрифтом;
  • посилання <a> підкреслені та мають синій колір;
  • марковані списки <ul> мають відступ.

У стандарті HTML немає жодних правил, які б визначали таке обов'язкове форматування: браузери просто додають його для того, щоб простий HTML-код при візуалізації був більш читабельним.

Різні браузери обробляють елементи схоже, але все ж неоднаково. Так, наприклад, Chrome і Firefox використовують властивість padding для створення відступу в маркованих списках.

Крім того, є незначні відмінності в розмірах елементів у різних браузерах, що може ввести в обману у процесі верстки. Через ці невідповідності можна зіткнутись із ситуацією, коли, наприклад, Firefox додасть відступ від верхнього краю, а інший браузер цього не зробить. Такі проблеми виникають через відмінність стилів, вбудованих у браузер.

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

Концепція обнулення (очищення) стилів браузера називається скиданням стилів (CSS Reset). Зокрема є базовий набір стилів, який ви повинні включити на початку, перед власними CSS-правилами. Вони встановлять базові значення для властивостей, які можуть по-різному оброблятися у різних браузерах.

до змісту ↑

Як очистити (скинути, обнулити) стилі CSS

Зазвичай веб-розробник, що займається версткою, має власний набір CSS-правил, які використовує у новому проєкті.

normalize.css — популярна безкоштовна таблиця стилів з відкритим вихідним кодом.

Приведу приклад власних CSS-стилів, які використовую у своїй роботі:

/**
 * Reset styles
 */

* {
  padding: 0px;
  margin: 0px;
  border: 0px;
}

*,
*::before,
*::after {
  -webkit-box-sizing: border-box;
		  box-sizing: border-box;
}

*:focus {
  outline: none;
}

html,
body {
  height: 100%;
  min-width: 320px;
}

body {
  color: #000000;
  line-height: 1;
  font-size: 1rem;
  -ms-text-size-adjust: 100%;
  -moz-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

input,
button,
textarea {
  font-size: inherit;
}

button {
  cursor: pointer;
  color: inherit;
  background-color: inherit;
}

a {
  color: inherit;
  text-decoration: none;
}

a:link,
a:visited {
  text-decoration: none;
}

a:hover {
  text-decoration: none;
}

ul,
ol,
li {
  list-style: none;
}

img {
  vertical-align: top;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-weight: inherit;
  font-size: inherit;
  line-height: 1;
}
Правила очищення повинні бути розміщені перед іншими CSS-директивами. Наприклад:

<!DOCTYPE html>
<html lang="uk">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Title</title>

    <link rel="stylesheet" href="assets/css/reset.css">
    <link rel="stylesheet" href="assets/css/style.css">
</head>
<body>
</body>
</html>

Михайло Петров
Михайло Петров

Мене звати Михайло. Я — WordPress-розробник. Створюю візитки, корпоративні сайти, блоги на WordPress.

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *