🔍 Начните печатать, чтобы искать по книге или перейти к нужной странице по номеру
Удобно листать не только прокруткой, но и клавишами‑стрелками:
Эта книга — пошаговая инструкция по вёрстке сайтов на языках ХТМЛ и ЦСС. Вы узнаете не только как сверстать сайт, но и как опубликовать его в интернете, настроить красивый шаринг в соцсети и подключить системы аналитики.
Отдельный раздел книги посвящён работе с верстальщиком: как ставить задачи, получать предсказуемый результат и правильно принимать и внедрять вёрстку.
Знакомство с ХТМЛ и ЦСС
Модули
Расстановка
Страницы
Спецэффекты
Контроль качества
Публикация
Как работать с верстальщиком
Эта книга — пошаговая инструкция по вёрстке сайтов на языках ХТМЛ и ЦСС. Вы узнаете не только как сверстать сайт, но и как опубликовать его в интернете, настроить красивый шаринг в соцсети и подключить системы аналитики.
Отдельный раздел книги посвящён работе с верстальщиком: как ставить задачи, получать предсказуемый результат и правильно принимать и внедрять вёрстку.
Знакомство с ХТМЛ и ЦСС
Модули
Расстановка
Страницы
Спецэффекты
Контроль качества
Публикация
Как работать с верстальщиком
Разные версии браузеров поддерживают разные наборы ЦСС‑фич и свойств. Скажем, Хром уже поддерживает выравнивание последней строки текста с помощью text-align-last, а Сафари — пока нет. Если мы напишем text-align-last: right, то в Сафари ничего не изменится: браузер проигнорирует свойство, которое пока не поддерживает.
Если в хотя бы одном из значений составного свойства будет опечатка или ошибка, браузер не сможет применить свойство целиком. Если написать border: 1px solid , браузер не добавит рамку элементу. Веб‑инспектор при этом покажет свойство зачёркнутым.
Сафари пока не поддерживает краткую запись для text‑decoration‑line, text‑decoration‑color и text‑decoration‑thickness. Поэтому в нём элемент останется без подчёркивания
В падинге опечатка: pixels вместо px. Элемент останется без отступов
Большинство свойств одинаково поддерживаются в современных браузерах, но встречаются исключения. Если хотите использовать новое для себя свойство, проверьте его поддержку в базе данных фич и особенностей браузеров:
Разные версии браузеров поддерживают разные наборы ЦСС‑фич и свойств. Скажем, Хром уже поддерживает выравнивание последней строки текста с помощью text-align-last, а Сафари — пока нет. Если мы напишем text-align-last: right, то в Сафари ничего не изменится: браузер проигнорирует свойство, которое пока не поддерживает.
Если в хотя бы одном из значений составного свойства будет опечатка или ошибка, браузер не сможет применить свойство целиком. Если написать border: 1px solid , браузер не добавит рамку элементу. Веб‑инспектор при этом покажет свойство зачёркнутым.
Сафари пока не поддерживает краткую запись для text‑decoration‑line, text‑decoration‑color и text‑decoration‑thickness. Поэтому в нём элемент останется без подчёркивания
В падинге опечатка: pixels вместо px. Элемент останется без отступов
Большинство свойств одинаково поддерживаются в современных браузерах, но встречаются исключения. Если хотите использовать новое для себя свойство, проверьте его поддержку в базе данных фич и особенностей браузеров:
Чтобы добавить тень к тексту, используют свойство text-shadow. Чтобы задать тень, указывают её смещение по горизонтали и вертикали, радиус размытия и цвет. Самое интересное — можно разом задать несколько теней:
.neon {
color: tomato;
/* Задаём тень-свечение: с каждым шагом меняется
радиус и цвет тени */
text-shadow:
0 0 10px orangered,
0 0 20px firebrick,
0 0 40px maroon,
0 0 80px darkred;
}
.rainbow {
color: #fff;
/* Задаём тень-радугу: с каждым шагом меняется
цвет и смещение влево-вниз */
text-shadow: -4px 4px #ef3550,
-8px 8px #f48fb1,
-12px 12px #7e57c2,
-16px 16px #2196f3,
-20px 20px #26c6da,
-24px 24px #43a047,
-28px 28px #eeff41,
-32px 32px #f9a825,
-36px 36px #ff5722;
}
.3d {
color: #fff;
/* Задаём 3д-тень: красную и синюю тени
без размытия смещаем влево и вправо */
text-shadow: -.06em 0 red,
.06em 0 cyan;
}Чтобы добавить тень к тексту, используют свойство text-shadow. Чтобы задать тень, указывают её смещение по горизонтали и вертикали, радиус размытия и цвет. Самое интересное — можно разом задать несколько теней:
.neon {
color: tomato;
/* Задаём тень-свечение: с каждым шагом меняется
радиус и цвет тени */
text-shadow:
0 0 10px orangered,
0 0 20px firebrick,
0 0 40px maroon,
0 0 80px darkred;
}
.rainbow {
color: #fff;
/* Задаём тень-радугу: с каждым шагом меняется
цвет и смещение влево-вниз */
text-shadow: -4px 4px #ef3550,
-8px 8px #f48fb1,
-12px 12px #7e57c2,
-16px 16px #2196f3,
-20px 20px #26c6da,
-24px 24px #43a047,
-28px 28px #eeff41,
-32px 32px #f9a825,
-36px 36px #ff5722;
}
.3d {
color: #fff;
/* Задаём 3д-тень: красную и синюю тени
без размытия смещаем влево и вправо */
text-shadow: -.06em 0 red,
.06em 0 cyan;
}Иногда текст нужно дополнительно украсить: наклонить, повернуть или раскрасить. Для примера стилизуем заголовки. Начнём с разметки:
<h2>216 лекций, 97 часов</h2>
<p>…</p>
Настроим шрифт и начертание:
h2 {
font-family: Roboto Condensed, sans-serif;
font-weight: bold; /* Жирное начертание */
text-transform: uppercase; /* Буквы приводим к заглавным */
letter-spacing: -.025em; /* Уменьшаем межбуквенное расстояние */
}
Добавим тень, обводку и поменяем цвет текста:
h2 {
font-family: Roboto Condensed, sans-serif;
font-weight: bold;
text-transform: uppercase;
text-shadow: 5px 5px black; /* Добавляем чёрную тень, смещённую на 5 пк вправо-вниз */
/* Добавляем двухпиксельную чёрную обводку буквам.
Префикс -webkit- значит, что свойство пока не вошло
в стандарты и работает в Хроме, Сафари, Эдже и Опере */
-webkit-text-stroke: 2px black;
color: white;
}
Исказим заголовки:
h2 {
font-family: Roboto Condensed, sans-serif;
font-weight: bold;
text-transform: uppercase;
text-shadow: 5px 5px black;
-webkit-text-stroke: 2px black;
color: white;
transform: skew(0, -8deg);
}
Уберём тень, добавим подзаголовку градиент:
h2 {
font-family: Roboto Condensed, sans-serif;
font-weight: bold;
text-transform: uppercase;
-webkit-text-stroke: 2px black;
color: white;
transform: skew(0, -8deg);
/* linear-gradient — функция, генерирующая линейный градиент
с заданным направлением, цветами и ключевыми точками */
background-image: linear-gradient(160deg, #0093E9 0%, #80D0C7 100%);
}
Обрежем градиент по тексту:
h2 {
font-family: Roboto Condensed, sans-serif;
font-weight: bold;
text-transform: uppercase;
-webkit-text-stroke: 2px black;
color: white;
transform: skew(0, -8deg);
background-image: linear-gradient(160deg, #0093E9 0%, #80D0C7 100%);
-webkit-background-clip: text; /* Обрезаем фон по тексту */
color: transparent; /* И меняем цвет текста на прозрачный */
}
45 лекций, 9 часов
45 лекций, 9 часов
Иногда текст нужно дополнительно украсить: наклонить, повернуть или раскрасить. Для примера стилизуем заголовки. Начнём с разметки:
<h2>216 лекций, 97 часов</h2>
<p>…</p>
Настроим шрифт и начертание:
h2 {
font-family: Roboto Condensed, sans-serif;
font-weight: bold; /* Жирное начертание */
text-transform: uppercase; /* Буквы приводим к заглавным */
letter-spacing: -.025em; /* Уменьшаем межбуквенное расстояние */
}
Добавим тень, обводку и поменяем цвет текста:
h2 {
font-family: Roboto Condensed, sans-serif;
font-weight: bold;
text-transform: uppercase;
text-shadow: 5px 5px black; /* Добавляем чёрную тень, смещённую на 5 пк вправо-вниз */
/* Добавляем двухпиксельную чёрную обводку буквам.
Префикс -webkit- значит, что свойство пока не вошло
в стандарты и работает в Хроме, Сафари, Эдже и Опере */
-webkit-text-stroke: 2px black;
color: white;
}
Исказим заголовки:
h2 {
font-family: Roboto Condensed, sans-serif;
font-weight: bold;
text-transform: uppercase;
text-shadow: 5px 5px black;
-webkit-text-stroke: 2px black;
color: white;
transform: skew(0, -8deg);
}
Уберём тень, добавим подзаголовку градиент:
h2 {
font-family: Roboto Condensed, sans-serif;
font-weight: bold;
text-transform: uppercase;
-webkit-text-stroke: 2px black;
color: white;
transform: skew(0, -8deg);
/* linear-gradient — функция, генерирующая линейный градиент
с заданным направлением, цветами и ключевыми точками */
background-image: linear-gradient(160deg, #0093E9 0%, #80D0C7 100%);
}
Обрежем градиент по тексту:
h2 {
font-family: Roboto Condensed, sans-serif;
font-weight: bold;
text-transform: uppercase;
-webkit-text-stroke: 2px black;
color: white;
transform: skew(0, -8deg);
background-image: linear-gradient(160deg, #0093E9 0%, #80D0C7 100%);
-webkit-background-clip: text; /* Обрезаем фон по тексту */
color: transparent; /* И меняем цвет текста на прозрачный */
}
По умолчанию браузер переносит слова, не влезающие в полосу, на новую строку. Но если слово очень длинное и не вмещается в строку, оно вылезает за границы родителя.
Чтобы переносить длинные слова или ссылки, вылезающие за полосу набора, используют свойство overflow-wrap: слова механически разбиваются ровно в том месте, где перестают вмещаться в строку.
Самое длинное существительное без дефиса — водогрязеторфопарафинолечение. А по сути — это просто лечение грязью, торфом и парафином.
Самое длинное существительное без дефиса — водогрязеторфопарафинолечение. А по сути — это просто лечение грязью, торфом и парафином.
По умолчанию браузер переносит слова, не влезающие в полосу, на новую строку. Но если слово очень длинное и не вмещается в строку, оно вылезает за границы родителя.
Чтобы переносить длинные слова или ссылки, вылезающие за полосу набора, используют свойство overflow-wrap: слова механически разбиваются ровно в том месте, где перестают вмещаться в строку.
Самое длинное существительное без дефиса — водогрязеторфопарафинолечение. А по сути — это просто лечение грязью, торфом и парафином.
Самое длинное существительное без дефиса — водогрязеторфопарафинолечение. А по сути — это просто лечение грязью, торфом и парафином.
Чтобы аккуратно переносить слова с помощью дефисов, используют свойство hyphens с ключевыми словами manual (переносить только там, где сказано) и auto (переносить автоматически).
Автоматические переносы основаны на словарях и правилах деления слов на слоги, поэтому без указания языка документа (<html lang="ru">) не работают.
Встроенный автоматический перенос слов даёт непредсказуемый и не всегда удачный результат, который отличается от браузера к браузеру, поэтому обычно используют hyphens: manual с «подсказками».
Автоматические переносы не понимают, что «водогрязеторфопарафинолечение» и «соковыжималку» лучше разбивать с учётом морфологии, а не по отдельным слогам.
Кофеварка или соковыжималка прекрасны.
Кофеварка или соковыжималка прекрасны.
Чтобы аккуратно переносить слова с помощью дефисов, используют свойство hyphens с ключевыми словами manual (переносить только там, где сказано) и auto (переносить автоматически).
Автоматические переносы основаны на словарях и правилах деления слов на слоги, поэтому без указания языка документа (<html lang="ru">) не работают.
Встроенный автоматический перенос слов даёт непредсказуемый и не всегда удачный результат, который отличается от браузера к браузеру, поэтому обычно используют hyphens: manual с «подсказками».
Автоматические переносы не понимают, что «водогрязеторфопарафинолечение» и «соковыжималку» лучше разбивать с учётом морфологии, а не по отдельным слогам.
Кофеварка или соковыжималка прекрасны.
Кофеварка или соковыжималка прекрасны.