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

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

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

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

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

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

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

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

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

Оглавление

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

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

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

Оглавление

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

Лайфхак: песочницы для кода

Если не хочется писать код в фай­лах, можно делать это на одном из мно­же­ства сай­тов‑песоч­ниц. На таких сай­тах есть редак­тор и окошко с резуль­та­том вёрстки, кото­рый обнов­ля­ется в реаль­ном вре­мени при изме­не­нии кода.

Песоч­ницы подой­дут для тре­ни­ровки, быст­рой про­верки гипо­тез или чтобы поде­литься кодом с дру­гими людьми. Запу­стить в песоч­нице пол­но­цен­ный сайт не получится.

Самые популярные и простые в освоении песочницы: Кодпен и Код Сэндбокс

Лайфхак: песочницы для кода

Если не хочется писать код в файлах, можно делать это на одном из множества сайтов‑песочниц. На таких сайтах есть редактор и окошко с результатом вёрстки, который обновляется в реальном времени при изменении кода.

Песочницы подойдут для тренировки, быстрой проверки гипотез или чтобы поделиться кодом с другими людьми. Запустить в песочнице полноценный сайт не получится.

Самые популярные и простые в освоении песочницы: Кодпен и Код Сэндбокс

Теги

Чтобы струк­ту­ри­ро­вать и офор­мить стра­ницу, её раз­ме­чают язы­ком ХТМЛ.

ХТМЛ‑раз­метка состоит из кон­тей­не­ров с содер­жи­мым — тегов. Текст поме­щают внутрь тега, между его откры­ва­ю­щей и закры­ва­ю­щей частями:

<h1>Заголовок</h1>
<p>Текст абзаца.</p>
<p>Текст второго абзаца.</p>

Про­сто отбить один абзац от дру­гого энте­рами, как в Ворде, не полу­чится — бра­у­зеры вос­при­мут эти энтеры как пробелы.

Назва­ние тега отра­жает его смысл. Напри­мер, h1 — heading 1 — заго­ло­вок пер­вого уровня.

Теги можно вкла­ды­вать друг в друга. Напри­мер, сде­лать жир­ный текст внутри абзаца или пункты внутри списка:

<p>По-настоящему <b>важные принципы</b>:</p>

<ul>
  <li>Не планировать впритык</li>
  <li>Сделать значит сдать</li>
  <li>Флекс — всегда боль</li>
</ul>

Есть теги, кото­рые не нужно закры­вать и в кото­рые нельзя ничего вло­жить. Напри­мер, тег пере­носа строки br:

<h1>
  Лев Николаевич Толстой. <br>
  Жизнь и взгляды
</h1>

Не закры­ва­ются теги кар­ти­нок и раз­ных интер­ак­тив­ных эле­мен­тов: видео, полей ввода, кно­пок. Все эти эле­менты мы раз­бе­рём дальше в книге.

Ещё в ХТМЛ есть ком­мен­та­рии. Это спе­ци­аль­ный текст, кото­рый не будет видно на стра­нице, только в коде. Раз­ра­бот­чики исполь­зуют ком­мен­та­рии в каче­стве под­ска­зок себе и дру­гим людям, рабо­та­ю­щим с кодом.

Ком­мен­та­рии пишут внутри кон­струк­ции <!-- … -->, это поз­во­ляет удобно пря­тать любые теги — доста­точно допи­сать вос­кли­ца­тель­ный знак и дефисы в начале и конце тега и он пре­вра­тится в ком­мен­та­рий, про­па­дёт со стра­ницы, при этом остав­шись в коде. На языке раз­ра­бот­чи­ков это назы­ва­ется «заком­мен­тить» — спря­тать кусок вёрстки.

<p>Автор: Галина Игнатова</p>

<!-- Менять код только с разрешения главреда! -->
<p>Издание «Валенсия», код агента 348187</p>

<!-- Источники, закомментить, когда ссылок нет  -->
<!-- ul>
  <li></li>
  <li></li>
</ul -->

Теги

Чтобы структурировать и оформить страницу, её размечают языком ХТМЛ.

ХТМЛ‑разметка состоит из контейнеров с содержимым — тегов. Текст помещают внутрь тега, между его открывающей и закрывающей частями:

<h1>Заголовок</h1>
<p>Текст абзаца.</p>
<p>Текст второго абзаца.</p>

Просто отбить один абзац от другого энтерами, как в Ворде, не получится — браузеры воспримут эти энтеры как пробелы.

Название тега отражает его смысл. Например, h1 — heading 1 — заголовок первого уровня.

Теги можно вкладывать друг в друга. Например, сделать жирный текст внутри абзаца или пункты внутри списка:

<p>По-настоящему <b>важные принципы</b>:</p>

<ul>
  <li>Не планировать впритык</li>
  <li>Сделать значит сдать</li>
  <li>Флекс — всегда боль</li>
</ul>

Есть теги, которые не нужно закрывать и в которые нельзя ничего вложить. Например, тег переноса строки br:

<h1>
  Лев Николаевич Толстой. <br>
  Жизнь и взгляды
</h1>

Не закрываются теги картинок и разных интерактивных элементов: видео, полей ввода, кнопок. Все эти элементы мы разберём дальше в книге.

Ещё в ХТМЛ есть комментарии. Это специальный текст, который не будет видно на странице, только в коде. Разработчики используют комментарии в качестве подсказок себе и другим людям, работающим с кодом.

Комментарии пишут внутри конструкции <!-- … -->, это позволяет удобно прятать любые теги — достаточно дописать восклицательный знак и дефисы в начале и конце тега и он превратится в комментарий, пропадёт со страницы, при этом оставшись в коде. На языке разработчиков это называется «закомментить» — спрятать кусок вёрстки.

<p>Автор: Галина Игнатова</p>

<!-- Менять код только с разрешения главреда! -->
<p>Издание «Валенсия», код агента 348187</p>

<!-- Источники, закомментить, когда ссылок нет  -->
<!-- ul>
  <li></li>
  <li></li>
</ul -->

Атрибуты тегов

У каж­дого тега могут быть атри­буты — осо­бые пара­метры для управ­ле­ния его внеш­ним видом и пове­де­нием. Атри­буты запи­сы­вают после назва­ния тега.

Раньше вер­сталь­щики часто исполь­зо­вали атри­буты для оформ­ле­ния эле­мен­тов, но такой под­ход был неудоб­ным и сильно засо­рял ХТМЛ‑код. Посте­пенно от исполь­зо­ва­ния мно­гих атри­бу­тов отказались.

Сегодня вер­сталь­щики исполь­зуют на посто­ян­ной основе лишь несколько атри­бу­тов, со всеми из них мы позна­ко­мимся дальше по ходу книги.

Больше всего атри­бу­тов исполь­зуют в вёрстке форм и полей ввода, там атри­бу­тами настра­и­ва­ется боль­шин­ство осо­бен­но­стей пове­де­ния элементов.

<body>
  <h1 id="pageHeading" class="title">Вход на сайт</h1>

  <form method="GET" action="authorize.php">
    <p>
      <input type="text" placeholder="Логин" autofocus>
    </p>
    <p>
      <input type="password" placeholder="Пароль">
    </p>
    <p>
      <button type="submit" disabled>Войти</button>
    </p>
  </form>

  <p>
    <a href="/restore-password/">Забыли пароль?</a>
  </p>
</body>

Пример кода с большим количеством атрибутов. По названию многих атрибутов легко догадаться, за что они отвечают

Атрибуты тегов

У каждого тега могут быть атрибуты — особые параметры для управления его внешним видом и поведением. Атрибуты записывают после названия тега.

Раньше верстальщики часто использовали атрибуты для оформления элементов, но такой подход был неудобным и сильно засорял ХТМЛ‑код. Постепенно от использования многих атрибутов отказались.

Сегодня верстальщики используют на постоянной основе лишь несколько атрибутов, со всеми из них мы познакомимся дальше по ходу книги.

Больше всего атрибутов используют в вёрстке форм и полей ввода, там атрибутами настраивается большинство особенностей поведения элементов.

<body>
  <h1 id="pageHeading" class="title">Вход на сайт</h1>

  <form method="GET" action="authorize.php">
    <p>
      <input type="text" placeholder="Логин" autofocus>
    </p>
    <p>
      <input type="password" placeholder="Пароль">
    </p>
    <p>
      <button type="submit" disabled>Войти</button>
    </p>
  </form>

  <p>
    <a href="/restore-password/">Забыли пароль?</a>
  </p>
</body>

Пример кода с большим количеством атрибутов. По названию многих атрибутов легко догадаться, за что они отвечают

Даблдекер на знаке. Транспорт Лондона

Даблдекер на знаке. Транспорт Лондона

Даблдекер на знаке. Транспорт Лондона

Даблдекер на знаке. Транспорт Лондона

Даблдекер на знаке. Транспорт Лондона

<img>

<p>
  Даблдекер на знаке.
  <a>
    Транспорт Лондона
  </a>
</p>
<img>

<p>
  Даблдекер на знаке.
  <a href="https://tfl.gov.uk/info-for/suppliers-and-contractors/design-standards">
    Транспорт Лондона
  </a>
</p>
<img src="https://bureau.ru/projects/book-html/files/london-bus.png">

<p>
  Даблдекер на знаке.
  <a href="https://tfl.gov.uk/info-for/suppliers-and-contractors/design-standards">
    Транспорт Лондона
  </a>
</p>
<img src="..."
  width="300px"
  height="80px">

<p>
  Даблдекер на знаке.
  <a href="...">
    Транспорт Лондона
  </a>
</p>
<img src="..."
  width="300px"
  height="80px"
  style="transform: rotate(-5deg) translateY(-3px)">

<p style="font-weight: 100">
  Даблдекер на знаке.
  <a href="...">
    Транспорт Лондона
  </a>
</p>

Свер­стаем кар­тинку и под­пись к ней со ссыл­кой на источ­ник изображения.

Атри­бут href задаёт адрес ссылки.

Чтобы кар­тинка появи­лась, нужно ука­зать атри­бут src.

Чтобы настро­ить раз­меры кар­тинки, исполь­зуют атри­буты width и height.

Самый про­дви­ну­тый атри­бут — style, в нём можно настро­ить что угодно. О нём рас­ска­жем позже.

Даблдекер на знаке. Транспорт Лондона

Даблдекер на знаке. Транспорт Лондона

Даблдекер на знаке. Транспорт Лондона

Даблдекер на знаке. Транспорт Лондона

Даблдекер на знаке. Транспорт Лондона

<img>

<p>
  Даблдекер на знаке.
  <a>
    Транспорт Лондона
  </a>
</p>
<img>

<p>
  Даблдекер на знаке.
  <a href="https://tfl.gov.uk/info-for/suppliers-and-contractors/design-standards">
    Транспорт Лондона
  </a>
</p>
<img src="https://bureau.ru/projects/book-html/files/london-bus.png">

<p>
  Даблдекер на знаке.
  <a href="https://tfl.gov.uk/info-for/suppliers-and-contractors/design-standards">
    Транспорт Лондона
  </a>
</p>
<img src="..."
  width="300px"
  height="80px">

<p>
  Даблдекер на знаке.
  <a href="...">
    Транспорт Лондона
  </a>
</p>
<img src="..."
  width="300px"
  height="80px"
  style="transform: rotate(-5deg) translateY(-3px)">

<p style="font-weight: 100">
  Даблдекер на знаке.
  <a href="...">
    Транспорт Лондона
  </a>
</p>

Сверстаем картинку и подпись к ней со ссылкой на источник изображения.

Атрибут href задаёт адрес ссылки.

Чтобы картинка появилась, нужно указать атрибут src.

Чтобы настроить размеры картинки, используют атрибуты width и height.

Самый продвинутый атрибут — style, в нём можно настроить что угодно. О нём расскажем позже.

<!doctype html>
<html lang="ru">
  <head>
    <meta charset="UTF-8">

    <title>
      Портфолио Остапа Бендера
    </title>
    <!--
      Название страницы.
      Его мы видим в заголовке вкладки
    -->
  </head>

  <body>
    <h1>Портфолио Остапа Бендера</h1>
    <!-- Заголовок первого уровня -->

    <section>
      <!--
        section объединяет элементы в «главу» текста
      -->

      <h2>Кто такой? Чем знаменит?</h2>
      <!-- Заголовок второго уровня -->

      <p class="outstanding">
         Я великий комбинатор,
         идейный борец за денежные знаки.
      </p>
      <!-- Абзац -->

      <p>
         Кроме того, я знаю
         <a href="/projects/400">
           четыреста
           сравнительно честных
           способа отъёма денег</a>.
      </p>
    </section>
    
    <section>
      <h2>Аферы</h2>
      <p>
         В городе Арбатове
         выдал себя за сына
         лейтенанта Шмидта и получил
         от председателя горисполкома
         небольшую материальную помощь.
      </p>
      <!-- И так далее -->
    </section>
  </body>
</html>

Служебные теги

ХТМЛ‑стра­нице нужен обя­за­тель­ный обвес: doctype, html, head и body.

doctype — закли­на­ние, без кото­рого бра­у­зер может криво пока­зать стра­ницу. Это стан­дарт­ный текст, кото­рый меня­ется раз в 20 лет.

head — «голова» стра­ницы. Её содер­жи­мое не отоб­ра­жа­ется напря­мую на стра­нице, но исполь­зу­ется в спе­ци­аль­ных местах: в заго­ловке окна стра­ницы, в заклад­ках, в выдаче поис­ко­ви­ков и соцсетях.

body — «тело», само содер­жа­ние стра­ницы, кото­рое мы уви­дим в браузере.

Чтобы посмотреть код любой страницы в браузере, щёлкните правой кнопкой мыши и выберите «Просмотр кода страницы» (View Page Source). Либо с клавиатуры — Ctrl+U или ⌘+Option+U

<!doctype html>
<html lang="ru">
  <head>
    <meta charset="UTF-8">

    <title>
      Портфолио Остапа Бендера
    </title>
    <!--
      Название страницы.
      Его мы видим в заголовке вкладки
    -->
  </head>

  <body>
    <h1>Портфолио Остапа Бендера</h1>
    <!-- Заголовок первого уровня -->

    <section>
      <!--
        section объединяет элементы в «главу» текста
      -->

      <h2>Кто такой? Чем знаменит?</h2>
      <!-- Заголовок второго уровня -->

      <p class="outstanding">
         Я великий комбинатор,
         идейный борец за денежные знаки.
      </p>
      <!-- Абзац -->

      <p>
         Кроме того, я знаю
         <a href="/projects/400">
           четыреста
           сравнительно честных
           способа отъёма денег</a>.
      </p>
    </section>
    
    <section>
      <h2>Аферы</h2>
      <p>
         В городе Арбатове
         выдал себя за сына
         лейтенанта Шмидта и получил
         от председателя горисполкома
         небольшую материальную помощь.
      </p>
      <!-- И так далее -->
    </section>
  </body>
</html>

Чтобы посмотреть код любой страницы в браузере, щёлкните правой кнопкой мыши и выберите «Просмотр кода страницы» (View Page Source). Либо с клавиатуры — Ctrl+U или ⌘+Option+U

Служебные теги

ХТМЛ‑странице нужен обязательный обвес: doctype, html, head и body.

doctype — заклинание, без которого браузер может криво показать страницу. Это стандартный текст, который меняется раз в 20 лет.

head — «голова» страницы. Её содержимое не отображается напрямую на странице, но используется в специальных местах: в заголовке окна страницы, в закладках, в выдаче поисковиков и соцсетях.

body — «тело», само содержание страницы, которое мы увидим в браузере.

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