Собеседование Frontend (CSS) - вопросы и подготовка

Изучите CSS на уровне, который ожидают от опытных Frontend и Fullstack разработчиков. Этот набор карточек охватывает не только базовые темы, но и современные подходы к проектированию интерфейсов, оптимизации производительности и построению масштабируемых дизайн-систем. Внутри набора собраны вопросы по каскадности, специфичности, наследованию, селекторам, единицам измерения, Flexbox, CSS Grid, позиционированию и адаптивной верстке. Отдельное внимание уделено современным возможностям CSS: Container Queries, CSS Layers, Custom Properties, Nesting, Design Tokens, content-visibility и логическим свойствам. Карточки помогут разобраться в том, как браузер строит CSSOM и Render Tree, что влияет на Reflow и Repaint, как оптимизировать Critical Rendering Path и уменьшать влияние больших CSS-бандлов на производительность приложения. Набор также включает вопросы по архитектуре крупных проектов: BEM, CSS Modules, CSS-in-JS, Utility-First подходам, организации CSS в монорепозиториях, микрофронтендах и дизайн-системах. Рассматриваются реальные компромиссы, trade-offs и production-практики, которые часто обсуждаются на технических интервью. Материал подойдет Frontend-разработчикам, Fullstack-инженерам, Team Lead и архитекторам, которые готовятся к собеседованиям, проводят технические интервью или хотят систематизировать знания по современному CSS. Используйте карточки для самостоятельного обучения, повторения перед интервью, подготовки команды и оценки уровня кандидатов. Вам также может быть интересно: Собеседование TypeScript - вопросы и подготовка Собеседование Frontend (React) - вопросы и подготовка Собеседование Frontend (JavaScript) - вопросы и подготовка Собеседование Frontend (HTML) — вопросы и подготовка

You can start studying this pack. You'll receive 352 messages to help you review each card multiple times, following the principles of the forgetting curve.

Learn more about the spaced repetition method.
CSS: роль в рендеринге, отделение представления

CSS (Cascading Style Sheets) — язык описания внешнего оформления HTML‑документов: цвета, шрифты, раскладки и визуальные эффекты.

1/88
Значение initial в CSS

Что такое значение initial, как оно восстанавливает стандартное значение свойства, как соотносятся значения браузера по умолчанию и когда использование initial может быть нежелательным?

2/88
Наследование стилей (CSS)

Что такое наследование стилей, какие свойства наследуются по умолчанию, как переопределять значения и какие ограничения возникают при проектировании дизайн-систем?

3/88
Специфичность (Specificity)

Что такое специфичность CSS и как считать вес селекторов? Включает алгоритм расчёта, влияние inline-стилей и типичные проблемы при поддержке больших таблиц стилей.

4/88
Каскадность (Cascade) в CSS

Что такое каскадность в CSS и как определяется порядок применения правил, откуда берутся стили и какие проблемы возникают при конфликте селекторов?

5/88
Значение inherit и принудительное наследование

Коротко про inherit: как оно работает, когда применять и какие проблемы возникают при глубокой вложенности компонентов.

6/88
Значение unset

Что такое значение unset в CSS и как оно отличается от initial и inherit?

7/88
Значение CSS: revert

Что такое значение revert, как оно возвращает значение к предыдущему уровню каскада, как взаимодействует с пользовательскими стилями и какие есть ограничения поддержки?

8/88
Блочная модель (Box Model)

Что такое блочная модель (Box Model) и из каких частей состоит элемент в CSS.

9/88
box-sizing

Что такое свойство box-sizing, включая различия между content-box и border-box, влияние на адаптивную верстку и практические рекомендации?

10/88
Нормальный поток документа (Normal Flow)

Что такое нормальный поток документа (Normal Flow) и как в нём размещаются элементы?

11/88
Форматирование строчных и блочных элементов

Что такое форматирование строчных и блочных элементов, включая особенности отображения, расчета размеров и практические сценарии применения?

12/88
:not() селектор

Что такое селектор :not() и как он используется для исключения элементов из выборки, а также как это влияет на читаемость кода?

13/88
CSS-селекторы

Что такое CSS-селекторы, включая базовые типы селекторов, производительность поиска элементов и влияние на поддержку проекта?

14/88
Как браузер ищет элементы по селекторам

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

15/88
:is() и :where()

Селекторы :is() и :where() — функциональные псевдоклассы, которые позволяют группировать альтернативные селекторы внутри одного выражения и тем самым уменьшать дублирование CSS.

16/88
Псевдоклассы

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

17/88
Псевдоэлементы

Что такое псевдоэлементы, как они генерируют виртуальный контент, в чём отличие от псевдоклассов и какие практические ограничения нужно учитывать.

18/88
Селекторы атрибутов

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

19/88
Селектор :has()

Что такое селектор :has() — включая реализацию родительских зависимостей, производительность и реальные production‑сценарии?

20/88
Абсолютные единицы измерения

Что такое абсолютные единицы измерения, включая px, cm, mm, и какие ограничения их использования в веб‑интерфейсах?

21/88
Комбинаторы селекторов

Что такое комбинаторы селекторов, включая потомков, соседние элементы и прямых детей?

22/88
CSS-функции min() и max()

Что такое CSS-функции min() и max(), включая применение в адаптивном дизайне и компромиссы между гибкостью и сложностью поддержки?

23/88
Относительные единицы: em, rem, %, vw, vh

Что такое относительные единицы измерения и когда их применять?

24/88
svh, lvh и dvh — современные единицы высоты в CSS

Что такое современные единицы svh, lvh и dvh, включая мобильные браузеры и проблемы классического vh?

25/88
Flexbox (модель Flexible Box)

Что такое Flexbox, включая модель контейнера и элементов, основные оси и типичные сценарии применения?

26/88
clamp()

Что такое функция clamp(), включая адаптивную типографику, ограничения и преимущества перед media queries?

27/88
Flexbox: распределение пространства

Как работает распределение пространства во Flexbox, включая flex-grow, flex-shrink, flex-basis и особенности вычислений?

28/88
Выравнивание во Flexbox

Есть main axis (основная ось) и cross axis (поперечная ось). Свойства justify-content выравнивают вдоль основной оси, align-items — вдоль поперечной для элементов в одной строке, align-content — управляет распределением строк при переносе (multi-line). Также важны flex-direction, flex-wrap и align-self.

29/88
CSS функция calc()

Что такое функция calc() в CSS и как она вычисляет значения во время рендеринга?

30/88
em и rem

В чем различие между em и rem, включая механизм вычисления размеров и проблемы при масштабировании интерфейсов?

31/88
Flexbox — главная и поперечная оси

Что такое главная и поперечная ось Flexbox, включая влияние свойства flex-direction и практические сценарии использования?

32/88
Автоматические отступы (margin: auto) во Flexbox

Что такое автоматические отступы (margin: auto) во Flexbox?

33/88
Ограничения Flexbox для сложных сеток

Какие ограничения имеет Flexbox при построении сложных сеток, включая двухмерное позиционирование и производительность?

34/88
CSS Grid: строки и колонки

Как работают строки и колонки в CSS Grid, включая grid-template-columns, grid-template-rows и вычисление размеров?

35/88
Адаптивные сетки (CSS Grid): проблемы и решения

Какие проблемы возникают при создании сложных адаптивных сеток с CSS Grid и как их решать?

36/88
CSS Grid

Что такое CSS Grid, включая двухмерную систему раскладки, основные сущности и преимущества перед Flexbox?

37/88
Grid vs Flexbox: когда выбирать Grid

Когда следует использовать Grid вместо Flexbox, включая критерии выбора, компромиссы и реальные production-примеры?

38/88
Именованные области CSS Grid

Именованные области в CSS Grid — это способ дать именам ячейки или группе ячеек в шаблоне с помощью свойства grid-template-areas и затем помещать элементы в эти области через grid-area. Это повышает читаемость шаблонов, потому что визуальная структура задаётся в виде удобной «карты».

39/88
Единица fr

Что такое единица fr, включая распределение свободного пространства и ограничения при использовании?

40/88
position: relative

Что такое позиционирование relative?

41/88
Автоматическое размещение в Grid

Как работает автоматическое размещение элементов в Grid, включая алгоритм auto-placement и практические сценарии применения?

42/88
Позиционирование sticky

Что такое позиционирование sticky?

43/88
Позиционирование fixed

Что это: position: fixed фиксирует элемент относительно viewport — он выходит из нормального потока и остаётся на одном месте при прокрутке страницы.

44/88
position: absolute

Что такое позиционирование absolute — поиск содержащего блока, влияние на поток документа и типичные ошибки?

45/88
Контекст наложения (Stacking Context)

Что такое контекст наложения (Stacking Context), включая его создание, порядок отрисовки и сложности отладки?

46/88
z-index и stacking context

Как работает z-index, как взаимодействует со stacking context и какие типичные проблемы возникают в production.

47/88
Media Queries (медиа-запросы)

Что такое Media Queries, включая точки перелома, поддержку устройств и практические рекомендации по проектированию?

48/88
Адаптивный дизайн

Что такое адаптивный дизайн, включая принципы responsive-подхода, мобильную верстку и ограничения реализации?

49/88
CSS Transition

Коротко: CSS Transition — это механизм, который позволяет плавно изменять анимируемые CSS-свойства при их изменении, задавая длительность, функцию времени и задержку.

50/88
CSS-анимация

Что такое CSS Animation, включая ключевые кадры, циклы выполнения и практические сценарии использования?

51/88
Container Queries (контейнерные запросы)

Что такое Container Queries, включая отличие от Media Queries, сценарии применения и ограничения поддержки?

52/88
Брейкпоинты: проблемы и как минимизировать

Какие проблемы возникают при поддержке большого количества брейкпоинтов и как минимизировать их влияние?

53/88
Компонентная адаптивность и масштабируемость дизайн‑систем

Как проектировать компонентную адаптивность, включая независимость компонентов от страницы и масштабируемость дизайн‑систем?

54/88
Аппаратное ускорение анимаций

Браузеры делят рендеринг на этапы (style/layout → paint → composite/raster → GPU). Аппаратное ускорение означает, что часть работы выполняется на GPU или в отдельном потоке композитора, что снижает нагрузку на главный поток и даёт плавные кадры при правильном использовании.

55/88
Анимации, reflow и repaint

Какие проблемы возникают при анимации свойств, вызывающих reflow и repaint, и как их избегать?

56/88
Критический путь рендеринга (Critical Rendering Path)

Что такое Critical Rendering Path и как в него входят построение DOM, CSSOM, Render Tree и влияние CSS на время отображения страницы?

57/88
Reflow (Layout): что это и как влияет на производительность

Что такое Reflow (Layout), включая причины его возникновения и влияние на производительность интерфейса?

58/88
Какие CSS-свойства безопаснее анимировать

Краткий обзор: какие свойства лучше анимировать, чтобы получить плавные и производительные переходы.

59/88
Repaint (перерисовка)

Что такое Repaint, включая процесс перерисовки элементов и способы минимизации затрат?

60/88
Как CSS влияет на скорость первого отображения (FCP) и как оптимизировать

Как CSS влияет на скорость первого отображения страницы, включая блокирующие стили и стратегии оптимизации?

61/88
Методология BEM

Что такое методология BEM, включая структуру именования, масштабируемость проекта и типичные ошибки внедрения?

62/88
CSS Modules

Что такое CSS Modules, включая изоляцию стилей, сборку проекта и ограничения подхода?

63/88
Загрузка CSS в браузере

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

64/88
Большие CSS-бандлы: проблемы и стратегии оптимизации

Какие проблемы возникают при использовании больших CSS-бандлов и какие существуют стратегии их оптимизации?

65/88
CSS Containment (contain) — изоляция и производительность

Что такое CSS Containment, включая свойства contain, изоляцию областей интерфейса и влияние на производительность?

66/88
Utility‑First и Tailwind CSS

Что такое Utility‑First подход, как работают принципы Tailwind CSS, и какие у этого подхода преимущества и ограничения поддержки.

67/88
CSS-in-JS

Что такое CSS-in-JS, включая генерацию стилей во время выполнения, преимущества и компромиссы относительно классического CSS?

68/88
Дизайн‑система: CSS, токены и повторное использование

Выделяйте токены для цветов, отступов и типографики; строьте повторно используемые компоненты, которые используют токены и семантические переменные; внедряйте правила согласованности через документацию, тесты и автоматизацию.

69/88
Организация CSS в монорепозитории

Как организовать CSS в монорепозитории, включая переиспользование компонентов и предотвращение конфликтов стилей?

70/88
Антипаттерны при росте CSS-кода

Какие антипаттерны возникают при росте CSS-кодовой базы, включая глубокую вложенность селекторов и избыточную специфичность?

71/88
Design Tokens

Что такое Design Tokens, включая хранение цветов, размеров и типографики, и какие проблемы возникают при масштабировании продукта?

72/88
Логические свойства CSS

Логические свойства CSS позволяют описывать отступы, размеры и позиционирование относительно логики письма (inline / block), а не фиксированных физических направлений (top/right/bottom/left).

73/88
aspect-ratio

Что такое свойство aspect-ratio и как оно помогает с адаптивными изображениями, видео и упрощением верстки?

74/88
CSS-переменные vs переменные препроцессоров

Как работают CSS-переменные по сравнению с переменными препроцессоров, включая вычисления во время выполнения и ограничения каждого подхода?

75/88
CSS Nesting

Что такое CSS Nesting, включая синтаксис вложенности, читаемость кода и потенциальные проблемы поддержки?

76/88
CSS Custom Properties

Что такое CSS Custom Properties, включая динамическое изменение значений, наследование и сценарии использования в дизайн-системах?

77/88
content-visibility

Что такое свойство content-visibility и как оно помогает ленивому рендерингу интерфейса?

78/88
CSS Layers (@layer)

Что такое CSS Layers (@layer)?

79/88
Масштабируемая дизайн‑система для нескольких продуктов

Как построить масштабируемую дизайн‑систему для нескольких продуктов, включая совместное использование компонентов и независимость команд?

80/88
Консистентность интерфейсов в большой команде

Как обеспечить консистентность интерфейсов в большой команде разработчиков, включая стандарты именования и контроль качества CSS?

81/88
Темизация: светлая и тёмная, дизайн-токены и минимизация дублирования

Как организовать темизацию приложения: светлая и тёмная темы, использование дизайн-токенов и приёмы для минимизации дублирования кода.

82/88
Миграция большого legacy CSS-проекта

Как мигрировать большой legacy CSS-проект на современную архитектуру — стратегия перехода, управление рисками и учёт бизнес-ограничений.

83/88
Аудит CSS-кодовой базы

Как проводить аудит CSS-кодовой базы: поиск мёртвых стилей, анализ специфичности и оценка технического долга.

84/88
CSS-архитектура для крупного SPA

Как спроектировать CSS-архитектуру для крупного SPA-приложения: изоляция компонентов, переиспользование стилей и долгосрочная поддержка?

85/88
Выбор CSS-подхода: BEM, CSS Modules, CSS-in-JS, Utility-First

Какие критерии использовать при выборе между BEM, CSS Modules, CSS-in-JS и Utility-First подходом с учетом масштаба проекта, производительности и требований команды?

86/88
Метрики и инструменты для контроля производительности CSS в production

Какие метрики и инструменты использовать для контроля производительности CSS в production, включая Core Web Vitals, профилирование рендеринга и анализ бандлов?

87/88
CSS для микрофронтендов

Как проектировать CSS для микрофронтендов: изоляция стилей, независимые релизы и предотвращение конфликтов между командами?

88/88