#17. Способы добавить стили в CSS: атрибут style, тег style, внешний файл и link
Primary tabs
Forums:
В уроке #16 мы раскрасили страницу атрибутом style — и уже почувствовали неудобство: стили нужны были всего двум тегам, а представьте страницу из пятидесяти. Способов подключить CSS к HTML три: атрибут, тег style и внешний файл. Разберём все — и выберем главный.
Способ 1. Атрибут style
Стили пишутся прямо в открывающем теге — так мы делали в прошлом уроке:
<h1 style="color: red; font-size: 60px;">Мой блог</h1>
Работает мгновенно и годится для точечной правки одного элемента. Но минусы серьёзные:
- правило действует только на этот тег — чтобы поменять цвет всех абзацев, придётся править каждый;
- содержимое перемешивается с оформлением, а их разделение — вся суть CSS.
Способ 2. Тег style в head
Второй способ — вынести стили в тег style внутри head. Напомним из урока #3: head — служебная информация о странице, которая на ней самой не отображается:
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="utf-8">
<title>Тег style</title>
<style>
h1 {
color: red;
font-size: 60px;
}
p {
color: gray;
font-size: 20px;
}
</style>
</head>
<body>
<h1>Мой блог</h1>
<p>Этот абзац оформлен без единого атрибута style.</p>
</body>
</html>
Правила немного изменили вид: перед фигурными скобками теперь стоит селектор — «кому применить». Запись h1 означает «все заголовки h1», p — «все абзацы»: одно правило оформляет сразу все теги страницы, а из HTML оформление исчезло совсем. Подробно селекторы — тема следующего урока, пока достаточно общей идеи.
Способ 3. Внешний css-файл
Третий способ — главный для реальных сайтов: стили живут в отдельном файле. Создайте рядом с HTML-страницей файл styles.css:
my-site/
index.html
styles.css
Внутри — те же правила, что были в теге style, но без самого тега:
h1 {
color: red;
font-size: 60px;
}
p {
color: gray;
font-size: 20px;
}
А в head страницы файл подключается тегом link:
<head>
<meta charset="utf-8">
<title>Внешние стили</title>
<link rel="stylesheet" href="styles.css">
</head>
Атрибут href работает здесь так же, как в ссылках из урока #7: путь относительный, и если стили лежат в подпапке, пишем href="css/styles.css". Атрибут rel="stylesheet" сообщает браузеру, что подключена таблица стилей.
Почему этот способ главный: один css-файл обслуживает сколько угодно страниц — поменяли цвет заголовка в одном месте, и он изменился на всём сайте. HTML-файлы остаются чистыми, а браузер кэширует css-файл и не скачивает его заново с каждой страницей.
Какой способ выбрать
| Способ | Где живут стили | Когда использовать |
|---|---|---|
Атрибут style |
в открывающем теге | точечная правка одного элемента |
Тег style |
в head одной страницы |
стили нужны только этой странице |
Файл .css + link |
в отдельном файле | всё остальное — так устроены реальные сайты |
Частые ошибки
- писать в css-файле тег
<style>— в файле должны быть только правила, тег живёт в HTML; - наоборот, писать селекторы и фигурные скобки внутри атрибута
style=""; linkвнеheadили безrel="stylesheet";- опечатка в пути к файлу — страница внезапно «теряет» оформление. А если правили css-файл и изменений не видно — обновите страницу с очисткой кэша (Ctrl+F5).
Практика
Откройте страницу из урока #16 и проведите её «эволюцию» в два шага: сначала получите тот же вид через тег style в head, убрав атрибуты; затем перенесите правила в styles.css и подключите файл через link. После каждого шага страница должна выглядеть так же, как раньше. Напоследок прогоните её через валидатор из урока #15.
Наши правила пока умеют находить теги только по имени: h1 — значит, все заголовки.
А что если оформить нужно один конкретный абзац из десяти? Для этого есть селекторы по class и id — атрибуты, которые мы разобрали ещё в уроке #14.
Их и подключим к CSS в следующем уроке.
- Log in to post comments
- 99 reads