🔍 Начните печатать, чтобы искать по книге или перейти к нужной странице по номеру
Удобно листать не только прокруткой, но и клавишами‑стрелками:
Эта книга — пошаговая инструкция по вёрстке сайтов на языках ХТМЛ и ЦСС. Вы узнаете не только как сверстать сайт, но и как опубликовать его в интернете, настроить красивый шаринг в соцсети и подключить системы аналитики.
Отдельный раздел книги посвящён работе с верстальщиком: как ставить задачи, получать предсказуемый результат и правильно принимать и внедрять вёрстку.
Знакомство с ХТМЛ и ЦСС
Модули
Расстановка
Страницы
Спецэффекты
Контроль качества
Публикация
Как работать с верстальщиком
Эта книга — пошаговая инструкция по вёрстке сайтов на языках ХТМЛ и ЦСС. Вы узнаете не только как сверстать сайт, но и как опубликовать его в интернете, настроить красивый шаринг в соцсети и подключить системы аналитики.
Отдельный раздел книги посвящён работе с верстальщиком: как ставить задачи, получать предсказуемый результат и правильно принимать и внедрять вёрстку.
Знакомство с ХТМЛ и ЦСС
Модули
Расстановка
Страницы
Спецэффекты
Контроль качества
Публикация
Как работать с верстальщиком
Чтобы изменить выравнивание отдельного элемента внутри ячейки, используем justify-self и align-self
.cross {
justify-self: start;
align-self: start;
}
.pencil {
justify-self: end;
align-self: start;
}
.clock {
justify-self: start;
align-self: end;
}
.star {
justify-self: end;
align-self: end;
}Чтобы изменить выравнивание отдельного элемента внутри ячейки, используем justify-self и align-self
.cross {
justify-self: start;
align-self: start;
}
.pencil {
justify-self: end;
align-self: start;
}
.clock {
justify-self: start;
align-self: end;
}
.star {
justify-self: end;
align-self: end;
}Если после создания столбцов и строк в контейнере осталось свободное пространство, то его можно распределить, как во флексбоксах, с помощью justify-content и align-content
.grid {
display: grid;
gap: 18px;
grid-template-columns: 180px 180px;
grid-template-rows: 60px 60px;
justify-content: start;
align-content: start;
}justify‑content и align‑items во флексбоксах
Если после создания столбцов и строк в контейнере осталось свободное пространство, то его можно распределить, как во флексбоксах, с помощью justify-content и align-content
.grid {
display: grid;
gap: 18px;
grid-template-columns: 180px 180px;
grid-template-rows: 60px 60px;
justify-content: start;
align-content: start;
}justify‑content и align‑items во флексбоксах
Измените ЦСС так, чтобы первый указатель повторил второй.
.sign {
}
.sign__header,
.sign__footer {
}
.sign__footer {
}
Вёрстка
Дизайн
Вёрстка
Дизайн
Измените ЦСС так, чтобы первый указатель повторил второй.
.sign {
}
.sign__header,
.sign__footer {
}
.sign__footer {
}
И гриды, и флексбоксы поддерживаются всеми современными браузерами. Больше того, в некоторых случаях гриды и флексбоксы взаимозаменяемы — меняешь display: inline-grid на inline-flex, всё работает.
Советуем выбирать между флексбоксами и гридами, ориентируясь на свой опыт, задачу и код: какой вариант даст меньше кода, какой проще воспринимать и поддерживать?
По нашему опыту, флексбокс больше подходит в случае, когда раскладка определяется содержимым и важны переносы. Скажем, в вёрстке списка тегов или вариантов ответа в чате, где важно сохранить собственные размеры элементов.
С другой стороны, если важно вписать элементы в сетку из N колонок, лучше взять гриды. Код будет лаконичнее и понятнее:
Грид
.curriculum {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: .5em;
}Флексбокс
.curriculum {
--columns: 4;
--gap: .5em;
display: flex;
flex-wrap: nowrap;
gap: var(--gap);
}
.curriculum > * {
flex: 1 1 calc(100% / var(--columns));
max-width: calc((100% / var(--columns)) - var(--gap));
}
Чтобы мастерски овладеть флексбоксами и гридами, сыграйте в игры:
И гриды, и флексбоксы поддерживаются всеми современными браузерами. Больше того, в некоторых случаях гриды и флексбоксы взаимозаменяемы — меняешь display: inline-grid на inline-flex, всё работает.
Советуем выбирать между флексбоксами и гридами, ориентируясь на свой опыт, задачу и код: какой вариант даст меньше кода, какой проще воспринимать и поддерживать?
По нашему опыту, флексбокс больше подходит в случае, когда раскладка определяется содержимым и важны переносы. Скажем, в вёрстке списка тегов или вариантов ответа в чате, где важно сохранить собственные размеры элементов.
С другой стороны, если важно вписать элементы в сетку из N колонок, лучше взять гриды. Код будет лаконичнее и понятнее:
Грид
.curriculum {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: .5em;
}Флексбокс
.curriculum {
--columns: 4;
--gap: .5em;
display: flex;
flex-wrap: nowrap;
gap: var(--gap);
}
.curriculum > * {
flex: 1 1 calc(100% / var(--columns));
max-width: calc((100% / var(--columns)) - var(--gap));
}
Чтобы мастерски овладеть флексбоксами и гридами, сыграйте в игры:
В отличие от печатной продукции, нельзя предсказать, в каком формате посетитель увидит вёрстку — на компактном телефоне или на сверхшироком мониторе. Если в каком‑то случае люди не смогут полноценно пользоваться сайтом, они уйдут на другой сайт. Поэтому хороший дизайн и вёрстка стараются адаптироваться под разные условия.
При этом добиться идеальной адаптивности тяжело. Слишком много вариантов, сценариев и условий, в которых может быть открыт сайт. На поддержку некоторых экзотических сценариев уйдёт куча времени и сил. Решение о поддержке тех или иных сценариев принимают на основе анализа посещений сайта с помощью систем аналитики — о них позднее.
В этой главе мы изучим базовую адаптивность для любых сайтов — под размеры и пропорции экрана. Почти все элементы вёрстки сами подстраиваются под ширину экрана, верстальщику достаточно лишь не сломать это поведение и при необходимости скорректировать.
Анализ посетителей сайта
В отличие от печатной продукции, нельзя предсказать, в каком формате посетитель увидит вёрстку — на компактном телефоне или на сверхшироком мониторе. Если в каком‑то случае люди не смогут полноценно пользоваться сайтом, они уйдут на другой сайт. Поэтому хороший дизайн и вёрстка стараются адаптироваться под разные условия.
При этом добиться идеальной адаптивности тяжело. Слишком много вариантов, сценариев и условий, в которых может быть открыт сайт. На поддержку некоторых экзотических сценариев уйдёт куча времени и сил. Решение о поддержке тех или иных сценариев принимают на основе анализа посещений сайта с помощью систем аналитики — о них позднее.
В этой главе мы изучим базовую адаптивность для любых сайтов — под размеры и пропорции экрана. Почти все элементы вёрстки сами подстраиваются под ширину экрана, верстальщику достаточно лишь не сломать это поведение и при необходимости скорректировать.
Анализ посетителей сайта