Выбор ответа Middle Grid спрашивают часто обновлено

auto-fit и auto-fill: в чём разница

Вопрос

В контейнере шириной 1000px всего 2 карточки. В каком случае они растянутся на всю ширину?

/* A */ grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
/* B */ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Только в B: auto-fit схлопывает пустые треки, и 1fr берёт их место. Оба варианта создают столько колонок, сколько влезает (здесь 5). auto-fill оставляет пустые треки, и две карточки занимают 2 из 5 колонок. auto-fit схлопывает пустые треки до нуля, свободное место уходит в 1fr реальных колонок.

Варианты ответа

  1. В обоих: 1fr всегда растягивает реальные элементы на всю ширину
  2. Только в A: auto-fill заполняет карточками всю ширину контейнера
  3. Только в B: auto-fit схлопывает пустые треки, и 1fr берёт их местоправильный ответ
  4. Ни в одном: пустые колонки остаются в обоих случаях, карточки по 200px

Разбор

Оба варианта создают столько колонок, сколько влезает (здесь 5). auto-fill оставляет пустые треки, и две карточки занимают 2 из 5 колонок. auto-fit схлопывает пустые треки до нуля, свободное место уходит в 1fr реальных колонок. Вариант «в обоих» неверен как раз из-за пустых треков в A. «Только в A» путает названия. «Ни в одном» не учитывает схлопывание в auto-fit.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.