🔍 Начните печатать, чтобы искать по книге или перейти к нужной странице по номеру
Удобно листать не только прокруткой, но и клавишами‑стрелками:
Эта книга — пошаговая инструкция по вёрстке сайтов на языках ХТМЛ и ЦСС. Вы узнаете не только как сверстать сайт, но и как опубликовать его в интернете, настроить красивый шаринг в соцсети и подключить системы аналитики.
Отдельный раздел книги посвящён работе с верстальщиком: как ставить задачи, получать предсказуемый результат и правильно принимать и внедрять вёрстку.
Знакомство с ХТМЛ и ЦСС
Модули
Расстановка
Страницы
Спецэффекты
Контроль качества
Публикация
Как работать с верстальщиком
Эта книга — пошаговая инструкция по вёрстке сайтов на языках ХТМЛ и ЦСС. Вы узнаете не только как сверстать сайт, но и как опубликовать его в интернете, настроить красивый шаринг в соцсети и подключить системы аналитики.
Отдельный раздел книги посвящён работе с верстальщиком: как ставить задачи, получать предсказуемый результат и правильно принимать и внедрять вёрстку.
Знакомство с ХТМЛ и ЦСС
Модули
Расстановка
Страницы
Спецэффекты
Контроль качества
Публикация
Как работать с верстальщиком
С помощью font-family браузер понимает, какой шрифт использовать для текста элемента:
h3 {
font-family: Helvetica Neue, Helvetica, Arial, sans-serif;
}
p {
font-family: Georgia, Times, Times New Roman, serif;
}
Мы указываем несколько шрифтов про запас. Если на компьютере не установлен шрифт, если он не загрузился или в нём нет нужной буквы, браузер попробует следующий шрифт из списка.
В конце списка указываем ключевое слово, описывающее семейство шрифта: serif — с засечками, sans‑serif — без засечек, monospace — моноширинный. Если браузер доберётся до него, то возьмёт системный шрифт соответствующего семейства.
Чтобы браузер мог использовать указанный шрифт на странице, этот шрифт должен быть либо уже установлен в операционной системе, либо явно подключён к странице. Входящие в стандартный набор операционной системы шрифты называют веб‑безопасными: указываем их в font-family и всё работает, потому что они уже установлены у 99% пользователей. К таким шрифтам относятся, например, Verdana, Arial, Georgia и Times New Roman.
С помощью font-family браузер понимает, какой шрифт использовать для текста элемента:
h3 {
font-family: Helvetica Neue, Helvetica, Arial, sans-serif;
}
p {
font-family: Georgia, Times, Times New Roman, serif;
}
Мы указываем несколько шрифтов про запас. Если на компьютере не установлен шрифт, если он не загрузился или в нём нет нужной буквы, браузер попробует следующий шрифт из списка.
В конце списка указываем ключевое слово, описывающее семейство шрифта: serif — с засечками, sans‑serif — без засечек, monospace — моноширинный. Если браузер доберётся до него, то возьмёт системный шрифт соответствующего семейства.
Чтобы браузер мог использовать указанный шрифт на странице, этот шрифт должен быть либо уже установлен в операционной системе, либо явно подключён к странице. Входящие в стандартный набор операционной системы шрифты называют веб‑безопасными: указываем их в font-family и всё работает, потому что они уже установлены у 99% пользователей. К таким шрифтам относятся, например, Verdana, Arial, Georgia и Times New Roman.
Подберём шрифты для поста в блоге, используя веб‑безопасные Helvetica и Georgia. Начнём с разметки:
<article>
<h1>Когда использовать double вместо instance_double?</h1>
<p>Напомню разницу: <code>instance_double</code> может уронить тест, если застабленные методы отсутствуют в указанном классе, <code>double</code> на всё пофиг.</p>
<p>По моему опыту, всегда лучше брать <code>instance_double</code>, а <code>double</code> использовать только для каких-то незначительных штук со стабильным АПИ. Например, для писем:</p>
<!-- pre — preformatted text, заранее отформатированный текст. Обычно его используют для примеров кода или ASCII-арта -->
<pre>
<code>allow(DeadlineMailer)
.to receive(:last_deadline_warning)
.and_return(double(:email, deliver_later: true))
</code>
</pre>
</article>Зададим основной шрифт страницы — Helvetica:
body {
font-family: Helvetica Neue, Helvetica, Arial, sans-serif;
}
Зададим шрифт для заголовков — Georgia:
body {
font-family: Helvetica Neue, Helvetica, Arial, sans-serif;
}
h1,
h2,
h3 {
font-family: Georgia, Times, Times New Roman, serif;
}
Зададим шрифт для кода:
body {
font-family: Helvetica Neue, Helvetica, Arial, sans-serif;
}
h1,
h2,
h3 {
font-family: Georgia, Times, Times New Roman, serif;
}
code {
font-family: Consolas, Monaco, Menlo, monospace;
}
И увеличим кегль заголовков первого уровня с помощью font-size, о котором мы расскажем дальше:
body {
font-family: Helvetica Neue, Helvetica, Arial, sans-serif;
}
h1,
h2,
h3 {
font-family: Georgia, Times, Times New Roman, serif;
}
h1 {
font-size: 2.25em;
}
code {
font-family: Consolas, Monaco, Menlo, monospace;
}Подберём шрифты для поста в блоге, используя веб‑безопасные Helvetica и Georgia. Начнём с разметки:
<article>
<h1>Когда использовать double вместо instance_double?</h1>
<p>Напомню разницу: <code>instance_double</code> может уронить тест, если застабленные методы отсутствуют в указанном классе, <code>double</code> на всё пофиг.</p>
<p>По моему опыту, всегда лучше брать <code>instance_double</code>, а <code>double</code> использовать только для каких-то незначительных штук со стабильным АПИ. Например, для писем:</p>
<!-- pre — preformatted text, заранее отформатированный текст. Обычно его используют для примеров кода или ASCII-арта -->
<pre>
<code>allow(DeadlineMailer)
.to receive(:last_deadline_warning)
.and_return(double(:email, deliver_later: true))
</code>
</pre>
</article>Зададим основной шрифт страницы — Helvetica:
body {
font-family: Helvetica Neue, Helvetica, Arial, sans-serif;
}
Зададим шрифт для заголовков — Georgia:
body {
font-family: Helvetica Neue, Helvetica, Arial, sans-serif;
}
h1,
h2,
h3 {
font-family: Georgia, Times, Times New Roman, serif;
}
Зададим шрифт для кода:
body {
font-family: Helvetica Neue, Helvetica, Arial, sans-serif;
}
h1,
h2,
h3 {
font-family: Georgia, Times, Times New Roman, serif;
}
code {
font-family: Consolas, Monaco, Menlo, monospace;
}
И увеличим кегль заголовков первого уровня с помощью font-size, о котором мы расскажем дальше:
body {
font-family: Helvetica Neue, Helvetica, Arial, sans-serif;
}
h1,
h2,
h3 {
font-family: Georgia, Times, Times New Roman, serif;
}
h1 {
font-size: 2.25em;
}
code {
font-family: Consolas, Monaco, Menlo, monospace;
}Подключение нестандартных шрифтов. Один из самых простых и популярных сайтов с бесплатными шрифтами — Гугль‑фонтс. Его шрифты подключаются к сайту за пять минут.
Выберем нужный нам шрифт и его начертания.
Выделим полученный код и скопируем.
Вставим его в <head> нашей страницы:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<link rel="preconnect"
href="https://fonts.googleapis.com">
<link rel="preconnect"
href="https://fonts.gstatic.com" crossorigin>
<link rel="stylesheet"
href="https://fonts.googleapis.com/css2?family=Rubik&display=swap">
</head>
<body>
</body>
</html>Выделим код с font-family и скопируем.
Вставим его в стили:
body {
font-family: Rubik, sans-serif;
}Советуем сразу отфильтровать шрифты, поддерживающие кириллицу
Light 300 и Regular 400 — это вес начертания, его «жирность». Italic — курсив
Гугль добавляет ссылку на стили и заклинания, чтобы шрифты грузились быстрее
Шрифты подключены, но пока не работают: браузер не знает, где их использовать
Начертаниями управляют
Если шрифт не загрузится, браузер возьмёт Гельветику или Ариал
Советуем сразу отфильтровать шрифты, поддерживающие кириллицу
Light 300 и Regular 400 — это вес начертания, его «жирность». Italic — курсив
Гугль добавляет ссылку на стили и заклинания, чтобы шрифты грузились быстрее
Шрифты подключены, но пока не работают: браузер не знает, где их использовать
Начертаниями управляют
Если шрифт не загрузится, браузер возьмёт Гельветику или Ариал
Подключение нестандартных шрифтов. Один из самых простых и популярных сайтов с бесплатными шрифтами — Гугль‑фонтс. Его шрифты подключаются к сайту за пять минут.
Выберем нужный нам шрифт и его начертания.
Выделим полученный код и скопируем.
Вставим его в <head> нашей страницы:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<link rel="preconnect"
href="https://fonts.googleapis.com">
<link rel="preconnect"
href="https://fonts.gstatic.com" crossorigin>
<link rel="stylesheet"
href="https://fonts.googleapis.com/css2?family=Rubik&display=swap">
</head>
<body>
</body>
</html>Выделим код с font-family и скопируем.
Вставим его в стили:
body {
font-family: Rubik, sans-serif;
}Можно подключить к странице свой файл шрифта. Конструкция @font-face объявляет браузеру новый шрифт, его название, формат и путь до файла.
Если качаете шрифт из интернета — убедитесь, что у вас есть лицензия для использования в вебе. Для некоторых шрифтов веб‑лицензия бесплатна.
Крайне не советуем использовать «пиратские» шрифты и шрифты, в правах использования которых вы не уверены. Это может обернуться не только репутационными потерями, но и реальным судебным разбирательством — крупные шрифтовые компании сегодня активно мониторят веб на предмет неправомерного использования своих шрифтов.
@font-face {
font-family: 'My Custom Font'; /* Это название будет использоваться для применения шрифта */
src: url('fonts/myCustomFont.woff2') format('woff2');
/* Путь до файла шрифта с указанием формата — рядом с ЦСС-файлом в папке fonts */
}
/* Для начертаний конструкция дублируется, но уже с указанием другого файла и нужного font-weight, название остаётся без изменений */
@font-face {
font-family: 'My Custom Font';
src: url('fonts/myCustomFont-Light.woff2') format('woff2');
font-weight: 100;
}
/* Используем объявленный шрифт на странице */
body {
font-family: 'My Custom Font', sans-serif;
font-weight: 100;
}
У подключения собственных шрифтов есть много нюансов, выходящих за рамки этой книги. Перед подключением ознакомьтесь с документацией: @font‑face
Можно подключить к странице свой файл шрифта. Конструкция @font-face объявляет браузеру новый шрифт, его название, формат и путь до файла.
Если качаете шрифт из интернета — убедитесь, что у вас есть лицензия для использования в вебе. Для некоторых шрифтов веб‑лицензия бесплатна.
Крайне не советуем использовать «пиратские» шрифты и шрифты, в правах использования которых вы не уверены. Это может обернуться не только репутационными потерями, но и реальным судебным разбирательством — крупные шрифтовые компании сегодня активно мониторят веб на предмет неправомерного использования своих шрифтов.
@font-face {
font-family: 'My Custom Font'; /* Это название будет использоваться для применения шрифта */
src: url('fonts/myCustomFont.woff2') format('woff2');
/* Путь до файла шрифта с указанием формата — рядом с ЦСС-файлом в папке fonts */
}
/* Для начертаний конструкция дублируется, но уже с указанием другого файла и нужного font-weight, название остаётся без изменений */
@font-face {
font-family: 'My Custom Font';
src: url('fonts/myCustomFont-Light.woff2') format('woff2');
font-weight: 100;
}
/* Используем объявленный шрифт на странице */
body {
font-family: 'My Custom Font', sans-serif;
font-weight: 100;
}
У подключения собственных шрифтов есть много нюансов, выходящих за рамки этой книги. Перед подключением ознакомьтесь с документацией: @font‑face
В ЦСС единицы измерения бывают относительными и абсолютными. Относительные считаются относительно чего‑то ещё:
em — относительно кегля родителя;
rem — относительно кегля у <html>;
vw — относительно ширины экрана, 1vw — 1% ширины экрана;
vh — относительно высоты экрана, 1vh — 1% высоты экрана;
% — относительно значения такого же свойства родителя, но с редкими исключениями.
Например, width: 50% задаст ширину равную половине ширины родителя. С другой стороны, margin-left: 25% задаст левый отступ равный четверти от ширины родителя, а не от его margin-left.
Абсолютные единицы измерения привязаны к конкретным размерам: 1cm на печати — это один «физический» сантиметр в реальном мире, 1px на экране — это один виртуальный пиксель вашего экрана.
Большая часть абсолютных единиц измерения используется при выводе страницы на печать: для вывода на экран сантиметры и дюймы конвертируются в пиксели и никогда не совпадают с реальными физическими единицами. Поэтому для указания точных и конкретных размеров на экране вы будете использовать пиксели, px.
См. также:
В ЦСС единицы измерения бывают относительными и абсолютными. Относительные считаются относительно чего‑то ещё:
em — относительно кегля родителя;
rem — относительно кегля у <html>;
vw — относительно ширины экрана, 1vw — 1% ширины экрана;
vh — относительно высоты экрана, 1vh — 1% высоты экрана;
% — относительно значения такого же свойства родителя, но с редкими исключениями.
Например, width: 50% задаст ширину равную половине ширины родителя. С другой стороны, margin-left: 25% задаст левый отступ равный четверти от ширины родителя, а не от его margin-left.
Абсолютные единицы измерения привязаны к конкретным размерам: 1cm на печати — это один «физический» сантиметр в реальном мире, 1px на экране — это один виртуальный пиксель вашего экрана.
Большая часть абсолютных единиц измерения используется при выводе страницы на печать: для вывода на экран сантиметры и дюймы конвертируются в пиксели и никогда не совпадают с реальными физическими единицами. Поэтому для указания точных и конкретных размеров на экране вы будете использовать пиксели, px.
См. также: