🔍 Начните печатать, чтобы искать по книге или перейти к нужной странице по номеру
Удобно листать не только прокруткой, но и клавишами‑стрелками:
Эта книга — пошаговая инструкция по вёрстке сайтов на языках ХТМЛ и ЦСС. Вы узнаете не только как сверстать сайт, но и как опубликовать его в интернете, настроить красивый шаринг в соцсети и подключить системы аналитики.
Отдельный раздел книги посвящён работе с верстальщиком: как ставить задачи, получать предсказуемый результат и правильно принимать и внедрять вёрстку.
Знакомство с ХТМЛ и ЦСС
Модули
Расстановка
Страницы
Спецэффекты
Контроль качества
Публикация
Как работать с верстальщиком
Эта книга — пошаговая инструкция по вёрстке сайтов на языках ХТМЛ и ЦСС. Вы узнаете не только как сверстать сайт, но и как опубликовать его в интернете, настроить красивый шаринг в соцсети и подключить системы аналитики.
Отдельный раздел книги посвящён работе с верстальщиком: как ставить задачи, получать предсказуемый результат и правильно принимать и внедрять вёрстку.
Знакомство с ХТМЛ и ЦСС
Модули
Расстановка
Страницы
Спецэффекты
Контроль качества
Публикация
Как работать с верстальщиком
У элементов бывают внутренние и внешние отступы.
Внутренние отступы от границ элемента до содержимого называют «падингами». Их задают свойством padding для разных сторон:
p {
padding-left: 10px;
padding-right: 10px;
padding-top: 20px;
padding-bottom: 30px;
}
Фон элемента распространяется на падинги, это удобно при вёрстке карточек и плашек:
p {
padding-left: 10px;
padding-right: 10px;
padding-top: 20px;
padding-bottom: 30px;
font-size: 120%;
background: #f3f3f3;
}
Внешние отступы от границ элемента до соседних элементов называют «маржинами». Их задают свойством margin для разных сторон:
p {
padding-left: 10px;
padding-right: 10px;
padding-top: 20px;
padding-bottom: 30px;
font-size: 120%;
background: #f3f3f3;
margin-bottom: 32px;
}
Вертикальные маржины могут быть только у блочных элементов.
Маржины и падинги можно и нужно комбинировать.
Поместим абзацы из примера и заголовок внутрь карточки с подложкой. Чтобы не задавать каждому элементу отступы до края карточки, укажем внутренние отступы самой карточке. А элементам укажем только вертикальные отступы друг от друга:
<div class="card">
<h3>How doth the little crocodile</h3>
<p>...</p>
<p>...</p>
</div>
.card {
padding-left: 10px;
padding-right: 10px;
padding-top: 20px;
padding-bottom: 30px;
background-color: #f3f3f3;
}
h3 {
margin-bottom: 24px;
}
p {
margin-top: 0;
margin-bottom: 18px;
}
/* Обнуляем нижний отступ для последнего абзаца */
p:last-child {
margin-bottom: 0;
}
Нет строгих правил и требований, когда использовать падинг, а когда маржин. Но лучше использовать свойства по их назначению: для внутренних и внешних отступов соответственно. Такую вёрстку будет проще понимать другим разработчикам.
У элементов бывают внутренние и внешние отступы.
Внутренние отступы от границ элемента до содержимого называют «падингами». Их задают свойством padding для разных сторон:
p {
padding-left: 10px;
padding-right: 10px;
padding-top: 20px;
padding-bottom: 30px;
}
Фон элемента распространяется на падинги, это удобно при вёрстке карточек и плашек:
p {
padding-left: 10px;
padding-right: 10px;
padding-top: 20px;
padding-bottom: 30px;
font-size: 120%;
background: #f3f3f3;
}
Внешние отступы от границ элемента до соседних элементов называют «маржинами». Их задают свойством margin для разных сторон:
p {
padding-left: 10px;
padding-right: 10px;
padding-top: 20px;
padding-bottom: 30px;
font-size: 120%;
background: #f3f3f3;
margin-bottom: 32px;
}
Вертикальные маржины могут быть только у блочных элементов.
Маржины и падинги можно и нужно комбинировать.
Поместим абзацы из примера и заголовок внутрь карточки с подложкой. Чтобы не задавать каждому элементу отступы до края карточки, укажем внутренние отступы самой карточке. А элементам укажем только вертикальные отступы друг от друга:
<div class="card">
<h3>How doth the little crocodile</h3>
<p>...</p>
<p>...</p>
</div>
.card {
padding-left: 10px;
padding-right: 10px;
padding-top: 20px;
padding-bottom: 30px;
background-color: #f3f3f3;
}
h3 {
margin-bottom: 24px;
}
p {
margin-top: 0;
margin-bottom: 18px;
}
/* Обнуляем нижний отступ для последнего абзаца */
p:last-child {
margin-bottom: 0;
}
Нет строгих правил и требований, когда использовать падинг, а когда маржин. Но лучше использовать свойства по их назначению: для внутренних и внешних отступов соответственно. Такую вёрстку будет проще понимать другим разработчикам.
У некоторых ЦСС‑свойств есть краткая запись. Это способ оптимизировать и сократить код, заменить несколько свойств одним.
Например, краткая запись падинга одним свойством описывает отступы сразу для всех сторон. Такая же краткая запись работает для маржина.
.example {
padding-top: 10px;
padding-right: 5px;
padding-bottom: 20px;
padding-left: 5px;
padding: 10px 5px 20px 5px; /* Верх, право, низ, лево */
padding: 10px 5px 20px; /* Верх, право-лево, низ */
padding: 10px 5px; /* Низ-верх, право-лево */
padding: 5px; /* Все отступы */
}
Можно описать базовые стили краткой записью, а в особых случаях указать отличия.
p {
margin: 0 18px 24px 0;
}
.lead {
margin-bottom: 24px; /* Меняем только нижний маржин */
}
.noIndent {
margin: 0; /* Меняем краткую запись целиком, все маржины обнулятся */
}
/* И наоборот: краткая запись переопределит все маржины */
h1 {
margin-top: 8px;
margin-bottom: 18px;
}
.pageTitle {
margin: 27px 0 36px;
}
Краткая запись. МДН
У некоторых ЦСС‑свойств есть краткая запись. Это способ оптимизировать и сократить код, заменить несколько свойств одним.
Например, краткая запись падинга одним свойством описывает отступы сразу для всех сторон. Такая же краткая запись работает для маржина.
.example {
padding-top: 10px;
padding-right: 5px;
padding-bottom: 20px;
padding-left: 5px;
padding: 10px 5px 20px 5px; /* Верх, право, низ, лево */
padding: 10px 5px 20px; /* Верх, право-лево, низ */
padding: 10px 5px; /* Низ-верх, право-лево */
padding: 5px; /* Все отступы */
}
Можно описать базовые стили краткой записью, а в особых случаях указать отличия.
p {
margin: 0 18px 24px 0;
}
.lead {
margin-bottom: 24px; /* Меняем только нижний маржин */
}
.noIndent {
margin: 0; /* Меняем краткую запись целиком, все маржины обнулятся */
}
/* И наоборот: краткая запись переопределит все маржины */
h1 {
margin-top: 8px;
margin-bottom: 18px;
}
.pageTitle {
margin: 27px 0 36px;
}
Краткая запись. МДН
В Хроме
Дизайнеру часто хочется посмотреть, как будет выглядеть страница, если немного увеличить кегль и отступ заголовка, поменять шрифт, цвет фона и радиус скругления кнопки.
Проще всего это сделать в браузере с помощью веб‑инспектора — встроенного набора инструментов для разработчиков.
В Сафари
Открыть его можно с помощью сочетания
Первая вкладка любого веб‑инспектора — Элементы, основной инструмент для просмотра и редактирования кода страницы. Обычно эта вкладка разделена пополам: слева разметка, справа стили выбранного элемента
В Хроме
Дизайнеру часто хочется посмотреть, как будет выглядеть страница, если немного увеличить кегль и отступ заголовка, поменять шрифт, цвет фона и радиус скругления кнопки.
Проще всего это сделать в браузере с помощью веб‑инспектора — встроенного набора инструментов для разработчиков.
В Сафари
Открыть его можно с помощью сочетания
Первая вкладка любого веб‑инспектора — Элементы, основной инструмент для просмотра и редактирования кода страницы. Обычно эта вкладка разделена пополам: слева разметка, справа стили выбранного элемента
Отредактируем портфолио, поменяв текст заголовка с помощью веб‑инспектора
В других браузерах пункт меню может называться «Проверить элемент»
Здесь и дальше мы будем использовать веб‑инспектор Гугль Хрома
В других браузерах есть отличия в деталях, но общий подход тот же
Изменения сохранились в браузере. Если обновить страницу, они исчезнут
Редактирование разметки. Чтобы выбрать элемент для редактирования, кликнем на нём правой кнопкой и выберем в контекстном меню «Инспектировать».
Откроется панель веб‑инспектора: слева элементы, справа их свойства.
Чтобы перейти в режим редактирования, дважды кликнем по тексту.
Затем изменим текст и нажмём «энтер», чтобы применить изменения.
Отредактируем портфолио, поменяв текст заголовка с помощью веб‑инспектора
В других браузерах пункт меню может называться «Проверить элемент»
Здесь и дальше мы будем использовать веб‑инспектор Гугль Хрома
В других браузерах есть отличия в деталях, но общий подход тот же
Изменения сохранились в браузере. Если обновить страницу, они исчезнут
Редактирование разметки. Чтобы выбрать элемент для редактирования, кликнем на нём правой кнопкой и выберем в контекстном меню «Инспектировать».
Откроется панель веб‑инспектора: слева элементы, справа их свойства.
Чтобы перейти в режим редактирования, дважды кликнем по тексту.
Затем изменим текст и нажмём «энтер», чтобы применить изменения.
Посмотрим, как выглядит кнопка в разных состояниях. Дважды кликнем по списку классов кнопки.
Поменяем класс btn‑bg на btn‑sm и нажмём «энтер», чтобы применить изменения.
Чтобы посмотреть, как выглядит нажатая кнопка, кликнем правой кнопкой и выберем Force State — :active.
Новое состояние применится к кнопке, соответствующие стили появятся в панели справа.
Поэкспериментируем с кнопкой и её состояниями на промостранице Бутстрапа
В Бустрапе используют комбинации классов для модификации элементов
В нашем случае, btn — базовый класс, а btn‑sm и btn‑lg — модификаторы размера
Здесь же можно включить ховер, фокус или «посещённость» у ссылки
Оранжевый кружок отмечает элементы с изменёнными вручную состояниями
Поэкспериментируем с кнопкой и её состояниями на промостранице Бутстрапа
В Бустрапе используют комбинации классов для модификации элементов
В нашем случае, btn — базовый класс, а btn‑sm и btn‑lg — модификаторы размера
Здесь же можно включить ховер, фокус или «посещённость» у ссылки
Оранжевый кружок отмечает элементы с изменёнными вручную состояниями
Посмотрим, как выглядит кнопка в разных состояниях. Дважды кликнем по списку классов кнопки.
Поменяем класс btn‑bg на btn‑sm и нажмём «энтер», чтобы применить изменения.
Чтобы посмотреть, как выглядит нажатая кнопка, кликнем правой кнопкой и выберем Force State — :active.
Новое состояние применится к кнопке, соответствующие стили появятся в панели справа.