Карточки кошек
Шапка и hero-блок готовы. В редакторе вы найдёте нашу версию; если вы копировали свою, вставьте её поверх нашей. Теперь самая важная часть страницы: кошки.
В разделе «Наши кошки» (id="cats") есть заголовок и div с четырьмя карточками. Каждая карточка — это article с картинкой и div с именем, возрастом, описанием и кнопкой. В карточке Оскара есть ещё span со значком «Новый». Несколько напоминаний из прошлых уроков:
- Колонки для каждой ширины. Классы без префикса действуют при любой ширине,
sm:— от 640 px,md:— от 768 px, аlg:— от 1024 px и шире. Одна колонка для телефонов, две для планшетов и четыре для компьютеров:grid gap-6 sm:grid-cols-2 lg:grid-cols-4. - Обрезанные картинки.
object-coverзаставляет картинку заполнить свой блок и обрезает то, что не поместилось, чтобы кошка не сплющилась. У блока должен быть размер:w-fullи соотношение сторон (aspect-video,aspect-square) или фиксированная высота (h-48). Соотношение сторон обрезает картинку одинаково при любой ширине. - Скруглённые углы. Если у карточки скруглённые углы, а картинка доходит до её краёв, квадратные углы картинки торчат наружу.
overflow-hiddenна карточке их обрезает. - Значок на картинке. Карточка получает
relative, а значок —absoluteи положение вродеtop-3 left-3, которое отсчитывается от угла карточки. - Кнопки на одной высоте. Описания разной длины, поэтому кнопки оказались бы на разной высоте. Сделайте карточку и её
divflex-колонками (flex flex-col), пустьdivзаполняет остаток карточки (flex-1), и пусть описание тоже растёт (flex-1): оно прижмёт кнопку к низу.
Время от времени переключайте предпросмотр на 375, 768 и 1280 px: в сетке должны быть одна, две и четыре колонки.
Проверки не могут навести мышь на кнопку, поэтому для hover: (и для focus: в следующем упражнении) они смотрят на классы в HTML. Если вы делаете собственный класс для кнопок через @apply, как в предыдущем уроке, всё равно оставьте класс с hover: в HTML.
Задание
- 1
Задайте разделу
#catsмаксимальную ширину по центру страницы и внутренние отступы, напримерmx-auto max-w-5xl px-4 py-12. Сделайте его заголовок крупным и жирным: не меньше 24 px (text-2xl) и не тоньшеfont-semibold. - 2
Разложите карточки (
div, в котором они лежат) по сетке с промежутками: одна колонка на телефонах и от двух до четырёх колонок начиная с некоторого брейкпоинта, напримерgrid gap-6 sm:grid-cols-2 lg:grid-cols-4. - 3
Сделайте каждую карточку (
article) отдельным блоком со скруглёнными углами и тенью или рамкой, напримерoverflow-hidden rounded-2xl bg-white shadow-md. Картинка доходит до углов карточки, поэтому карточке нуженoverflow-hiddenили же картинке — собственные скруглённые углы. - 4
Обрежьте картинки:
object-coverвместе с соотношением сторон или фиксированной высотой, напримерaspect-video w-full object-cover. И задайте тексту под картинкой (divв каждой карточке) внутренние отступы, напримерp-5, чтобы он не касался краёв карточки. - 5
Поместите значок «Новый» на картинку Оскара:
relativeна карточку, а на значок —absolute, положение и цвет фона, напримерabsolute top-3 left-3 rounded-full bg-emerald-500 px-3 py-1 text-xs font-bold text-white uppercase. - 6
Оформите четыре кнопки «Взять»: цвет фона, внутренние отступы, скруглённые углы, курсор-указатель (
cursor-pointer) и другой цвет, когда на них наведена мышь (hover:), напримерmt-4 cursor-pointer rounded-full bg-brand-500 px-4 py-2 font-semibold text-white hover:bg-brand-600.