• Как продвинуть сайт на первые места?
    Вы создали или только планируете создать свой сайт, но не знаете, как продвигать? Продвижение сайта – это не просто процесс, а целый комплекс мероприятий, направленных на увеличение его посещаемости и повышение его позиций в поисковых системах.
    Ускорение продвижения
    Если вам трудно попасть на первые места в поиске самостоятельно, попробуйте технологию Буст, она ускоряет продвижение в десятки раз, а первые результаты появляются уже в течение первых 7 дней. Если ни один запрос у вас не продвинется в Топ10 за месяц, то в SeoHammer за бустер вернут деньги.
    Начать продвижение сайта
  • Сервис онлайн-записи на собственном Telegram-боте
    Тот, кто работает в сфере услуг, знает — без ведения записи клиентов никуда. Мало того, что нужно видеть свое расписание, но и напоминать клиентам о визитах тоже. Нашли самый бюджетный и оптимальный вариант: сервис VisitTime.
    Для новых пользователей первый месяц бесплатно.
    Чат-бот для мастеров и специалистов, который упрощает ведение записей:
    Сам записывает клиентов и напоминает им о визите;
    Персонализирует скидки, чаевые, кэшбэк и предоплаты;
    Увеличивает доходимость и помогает больше зарабатывать;
    Начать пользоваться сервисом

Понятие «адаптивный дизайн» полностью изменится: что такое @container, и как контейнерные запросы могут изменить веб-разработку

Сообщение о появлении новой функции CSS, без сомнения, взволновало всех фронтенд-разработчиков. В настоящее время прототип контейнерных запросов доступен под флагом в Chrome Canary. Главная особенность @container — возможность стилизовать элементы на странице в зависимости от родительского контейнера.

Понятие «адаптивный дизайн» полностью изменится: что такое @container, и как контейнерные запросы могут изменить веб-разработку

Отличие от @media

Можно подумать, что контейнерные запросы мало отличаются от всем привычных медиазапросов, но это не так. Теперь для настройки стилей не нужно учитывать область просмотра, важен только размер родительского контейнера элемента.

Понятие «адаптивный дизайн» полностью изменится: что такое @container, и как контейнерные запросы могут изменить веб-разработку

Без сомнения, это самое большое изменение в веб-стилях со времен CSS3. Контейнерные запросы могут полностью изменить наше представление об «адаптивном дизайне». Веб-разработчикам больше не нужно использовать в качестве ориентира область просмотра и пользовательский агент. Возможность изменения стилей в зависимости от родителей означает, что один и тот же элемент, находясь в разных частях страницы, может выглядеть по-разному в зависимости от динамических изменений.

Понятие «адаптивный дизайн» полностью изменится: что такое @container, и как контейнерные запросы могут изменить веб-разработку

Как работает @container

В примере используются 2 блока со следующей разметкой:

<div class=»card-container»>
<div class=»card»>
<figure> … </figure>
<div>
<div class=»meta»>
<h2>…</h2>
<span class=»time»>…</span>
</div>
<div class=»notes»>
<p class=»desc»>…</p>
<div class=»links»>…</div>
</div>
<button>…</button>
</div>
</div>
</div>

Далее устанавливаем параметры родительского элемента .card-container, для которого будем запрашивать стили контейнера. Значение inline-size означает, что компонент реагирует только на изменения ширины родительского элемента.

Значение contain: layout; включает режим сдерживания компоновки элемента. В таком случае компоновка документа гарантированно не взаимодействует с содержащим блоком: ничего за пределами блока не может повлиять на его внутреннюю компоновку и наоборот.

Понятие «адаптивный дизайн» полностью изменится: что такое @container, и как контейнерные запросы могут изменить веб-разработку

Теперь можно настроить необходимые стили. Процесс очень похож на работу с медиазапросами, ведь здесь также используются параметры max-width и min-width.

Рассмотри несколько фрагментов кода в качестве примера. Когда родительский контейнер меньше 850px, убираем элементы с классом .links и меняем размер шрифта.

@container (max-width: 850px) {
.links {
display: none;
}

.time {
font-size: 1.25rem;
}

/* … */
}

Если размер родительского контейнера меньше 650px, то изменяется расстояние между строками с классом .card.

@container (max-width: 650px) {
.card {
gap: 1rem;
}

/* … */
}

Итоговый результат использования контейнерных запросов можно посмотреть на видео ниже.

Понятие «адаптивный дизайн» полностью изменится: что такое @container, и как контейнерные запросы могут изменить веб-разработку

Использование контейнерных запросов совместно с медиазапросами

Главная особенность контейнерных запросов — возможность разделить большие и маленькие макеты. Можно использовать медиазапросы для стилизации всей страницы, а функцию @container применять для тонкой настройки отдельных элементов.

Понятие «адаптивный дизайн» полностью изменится: что такое @container, и как контейнерные запросы могут изменить веб-разработку

Таким образом, появляется возможность большего контроля при веб-разработке, который позволяет создать интерфейсы нового уровня.

Понятие «адаптивный дизайн» полностью изменится: что такое @container, и как контейнерные запросы могут изменить веб-разработку

Чтобы поэкспериментировать с @container уже сегодня, необходимо перейти в chrome://flags в Chrome Canary и включить флаг #experimental-container-queries.

Понятие «адаптивный дизайн» полностью изменится: что такое @container, и как контейнерные запросы могут изменить веб-разработку

Оцените статью
Добавить комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.