


Блог IT-шника
Блог IT-шника
Привіт:) У цьому пості розповім для чого під час 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
:
Чому так виходить?
до змісту ↑Браузери за замовчуванням застосовують до HTML-елементів свої власні стилі. Наприклад:
<h1>
більший за <h2>
, вони обидва виділені напівжирним;<p>
менший і не виділений напівжирним шрифтом;<a>
підкреслені та мають синій колір;<ul>
мають відступ.У стандарті HTML немає жодних правил, які б визначали таке обов'язкове форматування: браузери просто додають його для того, щоб простий HTML-код при візуалізації був більш читабельним.
Різні браузери обробляють елементи схоже, але все ж неоднаково. Так, наприклад, Chrome і Firefox використовують властивість padding
для створення відступу в маркованих списках.
Крім того, є незначні відмінності в розмірах елементів у різних браузерах, що може ввести в обману у процесі верстки. Через ці невідповідності можна зіткнутись із ситуацією, коли, наприклад, Firefox додасть відступ від верхнього краю, а інший браузер цього не зробить. Такі проблеми виникають через відмінність стилів, вбудованих у браузер.
Щоб максимально позбутися невідповідності стилів між браузерами найкраще із самого початку верстки обнулити всі стилі, тобто почати таблицю стилів із "чистого аркуша". Іншими словами, видалити вбудоване у браузер форматування та додати власні правила.
Концепція обнулення (очищення) стилів браузера називається скиданням стилів (CSS Reset). Зокрема є базовий набір стилів, який ви повинні включити на початку, перед власними CSS-правилами. Вони встановлять базові значення для властивостей, які можуть по-різному оброблятися у різних браузерах.
до змісту ↑Зазвичай веб-розробник, що займається версткою, має власний набір 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;
}
<!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>