🔍 Начните печатать, чтобы искать по книге или перейти к нужной странице по номеру

Удобно листать не только прокруткой, но и клавишами‑стрелками:

 
между важными местами
Shift
между
разворотами
Васи­лий Полов­нёв, Игорь Пет­ров

ХТМЛ.
Вёрстка сайтов

Изда­тель­ство Бюро Гор­бу­нова
2021
Василий Половнёв, Игорь Петров

ХТМЛ.
Вёрстка сайтов

Издательство Бюро Горбунова
2021
удк 004.42
ббк З973.42
П52
Васи­лий Полов­нёв, Игорь Пет­ров
П52
ХТМЛ. Вёрстка сай­тов для дизай­не­ров, редак­то­ров и руко­во­ди­те­лей.—
М.: Изд‑во Бюро Гор­бу­нова, 2021

Эта книга — поша­го­вая инструк­ция по вёрстке сай­тов на язы­ках ХТМЛ и ЦСС. Вы узна­ете не только как свер­стать сайт, но и как опуб­ли­ко­вать его в интер­нете, настро­ить кра­си­вый шаринг в соц­сети и под­клю­чить системы аналитики.

Отдель­ный раз­дел книги посвя­щён работе с вер­сталь­щи­ком: как ста­вить задачи, полу­чать пред­ска­зу­е­мый резуль­тат и пра­вильно при­ни­мать и внед­рять вёрстку.

Оглавление

удк 004.42
ббк З973.42
П52
П52
Василий Половнёв, Игорь Петров
ХТМЛ. Вёрстка сайтов для дизайнеров, редакторов и руководителей.—
М.: Изд‑во Бюро Горбунова, 2021

Эта книга — пошаговая инструкция по вёрстке сайтов на языках ХТМЛ и ЦСС. Вы узнаете не только как сверстать сайт, но и как опубликовать его в интернете, настроить красивый шаринг в соцсети и подключить системы аналитики.

Отдельный раздел книги посвящён работе с верстальщиком: как ставить задачи, получать предсказуемый результат и правильно принимать и внедрять вёрстку.

Оглавление

Скрыто 9 разворотов

Где хранить стили

Пока на стра­нице мало эле­мен­тов, удобно хра­нить стили в теге 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, мы познакомимся с ними дальше в книге.

Скрыто 206 разворотов