Очищення (скидання, обнулення) стилів 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:

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

back to contents ↑

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

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

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

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

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

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

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

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

back to contents ↑

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

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

normalize.css (https://necolas.github.io/normalize.css/) — популярна безкоштовна таблиця стилів з відкритим вихідним кодом.

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

/**
 * Reset styles by Mykhailo Petrov
 *
 * v.3.0.1
 *
 */
*,
*::before,
*::after {
  padding: 0px;
  margin: 0px;
  border: 0px;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}
 
*:focus {
  outline: none;
}
 
html,
body {
  height: 100%;
  min-width: 320px;
  line-height: 1;
}
 
body {
  color: #000000;
  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-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  color: 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 {
  max-width: 100%;
  height: auto;
  vertical-align: top;
  object-fit: cover;
}
 
h1,
h2,
h3,
h4,
h5,
h6 {
  font-weight: inherit;
  font-size: inherit;
  line-height: inherit;
}

Правила очищення повинні бути розміщені перед іншими 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. Надаю консультації з WordPress.