Почему нельзя написать CSS в определённом виде?
Что проверяют
Такой вопрос почти всегда задают по конкретному фрагменту на доске: показывают правило и спрашивают, почему так не выйдет. Проверяют, различаете ли вы три разные ситуации: браузер выбросил правило, правило применилось и его перебили, правило работает, но поддерживать это потом невозможно.
Как отвечать
Уточните, про какой из случаев речь, и разбирайте по порядку.
Невалидное правило браузер молча отбрасывает: опечатка в свойстве, неподдерживаемое значение, ошибка в селекторе. Битый селектор обнуляет весь список, если он не завёрнут в прощающие :is() или :where(). В инструментах разработчика отброшенное свойство видно зачёркнутым.
Правило валидно, но не действует из-за природы элемента или контекста. width и вертикальные отступы не влияют на строчный элемент, процентная высота требует определённой высоты у родителя, position: sticky не работает, если предок создал прокручиваемый контейнер через overflow, z-index бессмысленен вне контекста наложения. Анимируются только интерполируемые значения, поэтому переход от height: auto не идёт, а display переключается скачком.
Правило работает, но его перебивают: решают слой каскада, затем важность, затем специфичность, и только при равенстве порядок в файле. Инлайновый стиль сильнее селектора, !important сильнее инлайнового.
И отдельный пласт это то, чего у CSS нет вовсе: выбор по тексту содержимого и подъём к соседу выше по дереву. Родителя ловит :has(), но он про наличие потомка, а не про обход вверх.
Где спотыкаются
Уходят в рассуждения про БЭМ и поддерживаемость, когда спросили про механику. Про организацию стилей стоит сказать фразу в конце, а начинать нужно с того, что именно делает браузер.
Второе: уверенно заявляют, что родительского селектора в CSS не существует. :has() уже поддержан, и кандидат с замершими знаниями выглядит человеком, который давно не заглядывал в спецификацию.
Третье: смешивают «не поддерживается» и «перебито». Первое лечится запасным значением или проверкой через @supports, второе разбором каскада, и лекарства у них совершенно разные.