🔍 Начните печатать, чтобы искать по книге или перейти к нужной странице по номеру
Удобно листать не только прокруткой, но и клавишами‑стрелками:
Эта книга — пошаговая инструкция по вёрстке сайтов на языках ХТМЛ и ЦСС. Вы узнаете не только как сверстать сайт, но и как опубликовать его в интернете, настроить красивый шаринг в соцсети и подключить системы аналитики.
Отдельный раздел книги посвящён работе с верстальщиком: как ставить задачи, получать предсказуемый результат и правильно принимать и внедрять вёрстку.
Знакомство с ХТМЛ и ЦСС
Модули
Расстановка
Страницы
Спецэффекты
Контроль качества
Публикация
Как работать с верстальщиком
Эта книга — пошаговая инструкция по вёрстке сайтов на языках ХТМЛ и ЦСС. Вы узнаете не только как сверстать сайт, но и как опубликовать его в интернете, настроить красивый шаринг в соцсети и подключить системы аналитики.
Отдельный раздел книги посвящён работе с верстальщиком: как ставить задачи, получать предсказуемый результат и правильно принимать и внедрять вёрстку.
Знакомство с ХТМЛ и ЦСС
Модули
Расстановка
Страницы
Спецэффекты
Контроль качества
Публикация
Как работать с верстальщиком
Пока на странице мало элементов, удобно хранить стили в теге style. С ростом количества элементов и кода, работать с тегом style станет тяжелее: постоянно прокручивать от стилей к разметке и обратно, выискивать нужные кусочки кода, нагружать мозг.
Когда стилей много, удобнее вынести их в отдельный файл и работать с ним в отдельном окне редактора.
Файл со стилями имеет расширение .css. Обычно его называют style.css и кладут рядом с ХТМЛ‑страницей, это самый простой способ для небольших сайтов. Файл подключают к странице тегом link, все стили из подключённого файла применятся к странице.
Файл стилей можно подключить сразу к нескольким ХТМЛ‑страницам и управлять их стилями из одного места: поменяли отступы у абзацев в style.css, отступы поменялись на всех страницах.
В более сложных проектах бывает несколько файлов со стилями, расположенных где угодно, даже на другом сайте.
index.html
<!-- … -->
<head>
<title>Моя веб-страница</title>
<style>
body {
font-size: 16px;
line-height: 18px;
}
h1 {
font-size: 48px;
line-height: 52px;
font-family: Helvetica;
}
</style>
</head>
<!-- … -->
index.html
<!-- … -->
<head>
<title>Моя веб-страница</title>
<!-- Вместо style подключаем лежащий рядом файл -->
<link rel="stylesheet" href="style.css">
</head>
<!-- … -->
style.css
/* Стили, которые раньше были в теге style */
body {
font-size: 16px;
line-height: 18px;
}
h1 {
font-size: 48px;
line-height: 52px;
font-family: Helvetica;
}index.html
<!-- … -->
<head>
<title>Моя веб-страница</title>
<style>
body {
font-size: 16px;
line-height: 18px;
}
h1 {
font-size: 48px;
line-height: 52px;
font-family: Helvetica;
}
</style>
</head>
<!-- … -->
index.html
<!-- … -->
<head>
<title>Моя веб-страница</title>
<!-- Вместо style подключаем лежащий рядом файл -->
<link rel="stylesheet" href="style.css">
</head>
<!-- … -->
style.css
/* Стили, которые раньше были в теге style */
body {
font-size: 16px;
line-height: 18px;
}
h1 {
font-size: 48px;
line-height: 52px;
font-family: Helvetica;
}Пока на странице мало элементов, удобно хранить стили в теге style. С ростом количества элементов и кода, работать с тегом style станет тяжелее: постоянно прокручивать от стилей к разметке и обратно, выискивать нужные кусочки кода, нагружать мозг.
Когда стилей много, удобнее вынести их в отдельный файл и работать с ним в отдельном окне редактора.
Файл со стилями имеет расширение .css. Обычно его называют style.css и кладут рядом с ХТМЛ‑страницей, это самый простой способ для небольших сайтов. Файл подключают к странице тегом link, все стили из подключённого файла применятся к странице.
Файл стилей можно подключить сразу к нескольким ХТМЛ‑страницам и управлять их стилями из одного места: поменяли отступы у абзацев в style.css, отступы поменялись на всех страницах.
В более сложных проектах бывает несколько файлов со стилями, расположенных где угодно, даже на другом сайте.
Теги наследуют стили от родителей — тегов, внутри которых находятся. Наследование стилей позволяет писать меньше кода, избегать повторов стилей, последовательно стилизовать страницу от общего к частному.
Тег body — родитель для вложенных тегов заголовка и абзацев:
<body>
<h1>Джефф Раскин — Интерфейс</h1>
<p>…</p>
<p>…</p>
</body>
Если в ЦСС задать шрифт и цвет текста для body, вложенные теги унаследуют эти свойства:
body {
font-family: Arial;
color: red;
}
Унаследованные свойства можно переопределять:
body {
font-family: Arial;
color: red;
}
p {
color: blue;
}
Наследование. МДН
Теги наследуют стили от родителей — тегов, внутри которых находятся. Наследование стилей позволяет писать меньше кода, избегать повторов стилей, последовательно стилизовать страницу от общего к частному.
Тег body — родитель для вложенных тегов заголовка и абзацев:
<body>
<h1>Джефф Раскин — Интерфейс</h1>
<p>…</p>
<p>…</p>
</body>
Наследование. МДН
Если в ЦСС задать шрифт и цвет текста для body, вложенные теги унаследуют эти свойства:
body {
font-family: Arial;
color: red;
}
Унаследованные свойства можно переопределять:
body {
font-family: Arial;
color: red;
}
p {
color: blue;
}
Если с элементом связаны несколько наборов стилей, они дополнят друг друга. Эта особенность помогает меньше повторяться в коде, писать универсальные классы и использовать их в разных местах страницы.
Например, чтобы сверстать вынос, не нужно дублировать стили абзаца в отдельном классе. Достаточно указать только особенности выноса — увеличенный кегль и цвет.
<p>…</p>
<p class="liftOut">…</p>
p {
font-family: Helvetica, sans-serif;
}
.liftOut {
font-size: 125%;
color: red;
}
Если с элементом связаны несколько наборов стилей, они дополнят друг друга. Эта особенность помогает меньше повторяться в коде, писать универсальные классы и использовать их в разных местах страницы.
Например, чтобы сверстать вынос, не нужно дублировать стили абзаца в отдельном классе. Достаточно указать только особенности выноса — увеличенный кегль и цвет.
<p>…</p>
<p class="liftOut">…</p>
p {
font-family: Helvetica, sans-serif;
}
.liftOut {
font-size: 125%;
color: red;
}
Иногда к элементу относятся несколько наборов стилей, в которых есть одинаковые свойства. В этом случае браузер сравнит «важность» стилей и применит свойство из более важных стилей.
Браузер определяет важность по множеству условий, но на старте достаточно запомнить два главных правила.
Чем ниже стили написаны в коде, тем они важнее при прочих равных:
<p>…</p>
p {
color: red;
}
/*
Написанные ниже стили абзаца
перебьют написанные выше
*/
p {
color: blue;
}
Стили для классов важнее стилей для тегов:
<p class="large">…</p>
/*
Цвет из класса перебьёт цвет из тега,
даже если те стоят ниже в коде
*/
.large {
color: crimson;
}
p {
color: blue;
}
Конфликты и наслоение стилей часто вызывают проблемы у начинающих разработчиков. Например, можно написать стили для элемента, а потом забыть и дописать другие стили для этого же элемента ниже в коде. Начнутся конфликты, элемент будет выглядеть непредсказуемо.
Если элемент вдруг выглядит не так, как он описан в стилях, — первым делом убедитесь, что к нему не применяются какие‑нибудь дополнительные стили из других мест. Это можно легко сделать при помощи веб‑инспектора, мы изучим его в следующих главах.
Важность свойств на языке разработчиков называется специфичностью.
Специфичность. МДН
Иногда к элементу относятся несколько наборов стилей, в которых есть одинаковые свойства. В этом случае браузер сравнит «важность» стилей и применит свойство из более важных стилей.
Браузер определяет важность по множеству условий, но на старте достаточно запомнить два главных правила.
Чем ниже стили написаны в коде, тем они важнее при прочих равных:
<p>…</p>
p {
color: red;
}
/*
Написанные ниже стили абзаца
перебьют написанные выше
*/
p {
color: blue;
}
Стили для классов важнее стилей для тегов:
<p class="large">…</p>
/*
Цвет из класса перебьёт цвет из тега,
даже если те стоят ниже в коде
*/
.large {
color: crimson;
}
p {
color: blue;
}
Конфликты и наслоение стилей часто вызывают проблемы у начинающих разработчиков. Например, можно написать стили для элемента, а потом забыть и дописать другие стили для этого же элемента ниже в коде. Начнутся конфликты, элемент будет выглядеть непредсказуемо.
Если элемент вдруг выглядит не так, как он описан в стилях, — первым делом убедитесь, что к нему не применяются какие‑нибудь дополнительные стили из других мест. Это можно легко сделать при помощи веб‑инспектора, мы изучим его в следующих главах.
В ХТМЛ есть два основных типа элементов.
Блочные элементы занимают всю доступную ширину родителя и по умолчанию располагаются как этажи друг над другом, но могут раскладываться и по сетке. Примеры блочных элементов: заголовки, абзацы и списки.
Строчные элементы занимают ровно столько места, сколько нужно их содержимому, выстраиваются друг за другом и переносятся как строки. Например, так ведут себя слова, ссылки и картинки в тексте. Строчные элементы обычно помещаются внутри блочных.
Можно изменить тип элемента: заставить слово вести себя как блок, а заголовок — как слово в строке. За это отвечает свойство display: значение block делает элемент блочным, а inline — строчным. Бывают и другие значения display, мы познакомимся с ними дальше в книге.
В ХТМЛ есть два основных типа элементов.
Блочные элементы занимают всю доступную ширину родителя и по умолчанию располагаются как этажи друг над другом, но могут раскладываться и по сетке. Примеры блочных элементов: заголовки, абзацы и списки.
Строчные элементы занимают ровно столько места, сколько нужно их содержимому, выстраиваются друг за другом и переносятся как строки. Например, так ведут себя слова, ссылки и картинки в тексте. Строчные элементы обычно помещаются внутри блочных.
Можно изменить тип элемента: заставить слово вести себя как блок, а заголовок — как слово в строке. За это отвечает свойство display: значение block делает элемент блочным, а inline — строчным. Бывают и другие значения display, мы познакомимся с ними дальше в книге.