Собеседование 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) — вопросы и подготовка

Вы можете начать изучение этого набора. Вам будет отправлено 352 сообщений для повторения каждой карточки несколько раз в соответствие с кривой забывания.

Узнайте больше о методе интервального повторения.
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
WitSlice © 2026