0Pricing
CSS Academy · Урок

Внутренняя компоновка: размеры по содержимому

Используйте внутренние размеры min-content, max-content и fit-content для компоновок, определяемых содержимым.

«Внутренняя компоновка: размеры по содержимому» — бесплатный урок CSS Academy на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения CSS Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс CSS Academy содержит 4 уроков всего.

Что такое интринсивный дизайн?

Интринсивный дизайн, термин, введённый Дженом Симмонсом, означает предоставление содержимому возможности самостоятельно определять свой размер вместо навязывания явных размеров в пикселях. CSS предоставляет ключевые слова для интринсивного задания размеров, благодаря которым макеты естественным образом становятся адаптивными без переопределений, привязанных к контрольным точкам.

min-content и max-content

min-content: наименьший размер, в который помещается содержимое без переполнения (для текста перенос выполняется на каждой границе между словами). max-content: размер, необходимый для отображения содержимого в одной строке без переноса. Оба значения отражают фактические размеры содержимого.

fit-content

fit-content эквивалентен min(max-content, max(min-content, available)). Он увеличивается вместе с содержимым до размера доступного пространства, а затем выполняет перенос. Это идеальный вариант для кнопок и подписей, ширина которых должна соответствовать тексту, но не превышать ширину контейнера.

minmax() в сетке

minmax(min, max) в grid-template-columns задаёт минимальный и максимальный размер трека. minmax(200px, 1fr) создаёт столбец шириной не менее 200px, который может расширяться. В сочетании с auto-fill это создаёт адаптивные сетки с интринсивным изменением размеров.

auto-fill и auto-fit

Оба режима заполняют строку максимально возможным числом треков. auto-fill сохраняет пустые треки, оставляя число столбцов неизменным. auto-fit сворачивает пустые треки, поэтому заполненные треки расширяются и занимают всё доступное пространство. Используйте auto-fit для макетов, определяемых содержимым и расширяющихся на всю доступную ширину.

clamp() для плавной типографики

clamp(min, preferred, max) ограничивает значение заданными пределами. font-size: clamp(1rem, 2.5vw, 1.5rem) изменяет размер от 1rem до 1.5rem в зависимости от ширины области просмотра — это плавная типографика без медиазапросов.

Столбцы сетки, определяемые содержимым

grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)) создаёт адаптивную сетку, которая на очень узких областях просмотра состоит из одного столбца и автоматически добавляет столбцы по мере появления свободного места. Без медиазапросов и без JavaScript.

Интринсивное задание размеров с aspect-ratio

aspect-ratio: 16/9 заставляет элемент сохранять пропорции при изменении его ширины. В сочетании с width: 100% контейнер видео заполняет родительский элемент и всегда сохраняет соотношение 16:9 без JavaScript и хитростей с отступами в процентах.

Логические свойства

Интринсивный дизайн хорошо сочетается с логическими свойствами CSS (inline-size, block-size, margin-inline) и позволяет создавать макеты, работающие как в горизонтальном, так и в вертикальном режиме письма. Интринсивное задание размеров автоматически адаптируется к направлению письма.

Сравнение интринсивного и фиксированного макетов

Фиксированный: width: 300px — всегда 300px независимо от содержимого. Интринсивный: width: fit-content — ширина соответствует содержимому в пределах заданных ограничений. Для изменения фиксированных макетов нужны контрольные точки, а интринсивные макеты самостоятельно подстраиваются под содержимое и контекст.

Как избежать излишнего усложнения

Интринсивный дизайн наиболее эффективен, когда содержимое естественным образом отличается по размеру. Принудительное использование интринсивного задания размеров для известного и однородного содержимого добавляет сложность без пользы. Используйте явные размеры для фиксированных элементов оболочки интерфейса (навигации, панели инструментов), а интринсивное задание размеров — для областей содержимого.

Проверка знаний

Чем auto-fit отличается от auto-fill в свойстве grid-template-columns?

Итоги

Интринсивный дизайн использует ключевые слова CSS для задания размеров (min-content, max-content, fit-content), minmax() вместе с auto-fit, clamp() для плавного масштабирования и aspect-ratio, чтобы создавать макеты, определяемые размерами содержимого, а не контрольными точками области просмотра. В результате получаются естественно адаптивные макеты с меньшим количеством CSS и медиазапросов.

Часто задаваемые вопросы

Урок «Внутренняя компоновка: размеры по содержимому» бесплатный?

Да — полный текст урока «Внутренняя компоновка: размеры по содержимому» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс CSS Academy, подпишись на CoddyKit PRO. Курс CSS Academy содержит 4 уроков всего.

Чему я научусь в уроке «Внутренняя компоновка: размеры по содержимому»?

Используйте внутренние размеры min-content, max-content и fit-content для компоновок, определяемых содержимым. Ты практикуешь CSS Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать CSS Academy?

Предыдущий опыт не требуется. CSS Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.

Сколько времени занимает урок «Внутренняя компоновка: размеры по содержимому»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке CSS Academy?

Да. Каждый урок CSS Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Компоновка с фиксированными подвалом и боковой панелью
  2. Компоновка «священный грааль» с Grid
  3. Каменная кладка: подходы на CSS и JS
  4. Внутренняя компоновка: размеры по содержимому
← Назад к CSS Academy