Комментарии 76
Простите, вы это серьезно? Вам настолько делать нечего?
Я этим 10 лет занимаюсь. Пока еще держусь
А вы на работе только CSS занимаетесь?
Люди, которые занимаются CSS, JS, Vue, Node, SQL такие вещи вполне могут не знать но зато могут знать как загуглить специфичный CSS селектор.
Не только
Я как раз помогаю фулстек-разработчикам подружиться с CSS, чтобы не было страшно
И все же - зачем разработчику знать тонкие детали проекта типа "--xyu-dzigurda", которые были нахуеверчены твоим прошлым любимчиком?
Я проведу аналогию с языками. Английский, русский, и т.д. Большинство людей в России, говорят на русском, не зная правил, и делают много ошибок. Это им не мешает решать их задачи.
Но, есть люди, кому интересно узнать об этих ошибках. Исправить их. Не из-за результата, а потому им интересно. Это их стиль жизни.
Если вы не понимаете зачем вам знать тонкие детали, это не проблема. Я 13 лет назад тоже не понимал. А потом как-то сам втянулся. В итоге понял, что делаю свою работу медленно и приходится переделывать, а потом исправил это.
Синтаксис учится за неделю, причем синтаксис чего угодно. Я давно уже даже знание языков не проверяю на собеседованиях, в том нет смысла, а тут CSS... Да в эпоху ии. На базовом уровне с CSS разберется кто угодно, в остальных случаях это нужно столь редко что помнить просто нет смысла. И это я еще не учитывая, что в статье совсем какие то безумные вещи, которые даже для меня, архитектора библиотечных компонентов, выглядят дико.
Справедливости ради, у автора вопросы не на синтаксис, а на понимание как оно фунциклирует. Да, местами он перегибает палку, предлагая специфические примеры, которые вряд ли встретятся в проде. Но это не про синтаксис.
На базовом уровне с CSS разберется кто угодно
Вот это одна из причин (но не единственная конечно) нынешней плачевной ситуации с версткой.
Фронтендеры относятся к цсс откровенно пренебрежительно, считая его чем-то очень простым и второстепенным. У нас тут тайпскрипт с типами, реакт с хуками, некст-нукст-нест и прочий графкуэль - одним словом, серьезные вещи. Цсс на их фоне выглядит легкой разминкой. И в общем-то это скорее правда, хотя последние ~3 года он развивается быстрее, чем когда-либо. И там много нюансов на понимание (не заучивание).
Как итог, почти все на цсс просто забили. Он очень простой и легкий, но мы в нём ни черта не понимаем. Но разобраться ваще не проблема в любой момент. Но не разобрались. Такой вот парадокс.
нас тут тайпскрипт с типами, реакт с хуками, некст-нукст-нест и прочий графкуэль
Ага, как раз сейчас выкидываю килограммы дурно пахнущего фронтового кода, до которого у меня руки раньше не доходили. Очень большая часть фронта - ненужные приседания которые делают не пойми зачем, и с CSS - так же. Большая часть CSS легко умещается в описание некоторого кличества универсальных элементов, причем так, чтобы контейнеры управляли содержимым а не наоборот. Но вместо это имеем scoped styles по месту и прочие бэм. Извороты реально нужны, когда тебе хочется элегантно описать хитрый компонент. Большbнству же нужно KISS на лбу набить.
Я согласен с тем, что автор местами действительно перегибает палку.
Но! Также вполне очевидно, что его вопросы не говорят нам, что именно вот так и нужно писать код - основной целью была проверка понимания. Я даже думаю, что во многих случаях на собесе можно засчитывать и неправильный ответ, если он сопровождался более-менее разумными рассуждениями.
Цсс такая штука, что для хорошего результата зубрежки мало, надо понимать. Ну типа как пресловутый эвент-луп - если не понимаешь принцип, ии тебе не сильно поможет.
если он сопровождался более-менее разумными рассуждениями.
По CSS? Вы серьезно? Я не знаю как сказать... я могу на CSS магию творить, но на таком собесе я бы встал и ушел.
Ну типа как пресловутый эвент-луп
я не помню что такое евент луп, беглое гугление говорит мне что это подкапотность асинхронщины. Не что вроде старого доброго основного цикла while(true). Стесняюсь спросить где бы оно кому то когда то могло бы понадобится.
ии тебе не сильно поможет.
Как раз в изучении он отлично помогает, его можно попросить комментировать каждую строчку
я не помню что такое евент луп
от JS-разработчика это сильно
Это примерно как хирург, который не помнит, где находится сердце. Можно конечно и без этого знания резать, но как-то тревожно
я могу на CSS магию творить
А не надо магию. Надо надежные адаптивные лейауты с пиксель-перфект элементами. С этим, как показывает практика, у многих проблемы, потому что там зубрежки синтаксиса и классов tw недостаточно, нужно ещё понимать как оно работает.
В реальности: Отступы не как в макете и иконка не по центру? Ой да кто там заметит эти несколько пикселей... Двадцать пикселей? Ну пофиксим (подопрем костыльным марджином с меджик-намбером).
Надо надежные адаптивные лейауты с пиксель-перфект элементами
Ну серьезно, это же элементарщина. Это было ка кто сложно 20 лет назад, и то половина сложностей была в чтении макета, а сейчас, когда есть фигмы и все такое...
Ой да кто там заметит эти несколько пикселей
Гнать таких бездельников, и я буду ожидать встретить таких как раз среди тех, кто назубок знает синтаксис.
Кстати забавны, именно это я упомянул два сообщения назад.
Согласен, ля многих фронтов css стал глупой частью работы, которую можно скинуть на фреймворк типа Tailwind или просто накидать стилей по месту. А когда приходит задача сделать что-то чуть сложнее стандартного компонента, начинается магия с !important и костылями
Вполне допускаю существование профессии "CSS developer". Вам такой не нужен, нам такой не нужен, а кому-то может оказаться нужен. Например, для разработки библиотеки каких-то сложных анимаций или чего-то подобного.
Есть же люди, которые чисто SQL занимаются, и даже программировать на ООП-языках толком не умеют, и это никого не смущает.
Если мне на собеседовании такие вопросы будут задавать, извините, но пошлю таких работодателей и такого «руководителя» далеко и подальше. По конкретной работе что-нибудь спросите, я работать хочу, а не разгадывать кроссворды
>К тому же они о последних нововведениях в CSS.
А подскажите, в компаниях где вас нанимают для консультаций, поддерживают какие браузеры? Если только латест хромиум, то вопросов не имею, а если нужен сафари 16, то думаю вы уже сами поняли мой немой риторический вопрос.
А это реально прямо на собеседованиях кто-то должен ответить? Прямо сходу, без документации?
Это фронтендеров тестируют?
я надеюсь вы эти вопросу джунам задаете, иначе никак
Это вопросы из серии: "Заморочки из бочки". Займитесь составлением кросвордов для журналов - уйдите из профессии ! Сколько же Вы людей на собесах завалили ! Ваше место в литературе !
если человек будет способен отвечать на все это, то вы конкретно, со своей работой и организацией уже будете ему не нужны.
впрочем, если подумать, это даже хорошо что вы завалили массу людей, как минимум спасли их от нездорового окружения.
Зашел почитать актуальные сейчас вопросы, увидел какие-то совсем уж эджкейсы современных возможностей, которые сами по себе то в реальности ближайшие лет 5 можно будет встретить только в документации, а уж подобные нюансы вообще никогда. Ясно, понятно.
Лет 20 в вебе. Половину синтаксиса даже не знал и нафиг надо, честно сказать.
Тут скорее посмотреть на реакцию , если уж на работу нанимаете.
Да... судя по комментариям, познания в области CSS у этой этой цивилизации так себе...
Узкий специалист. Круто.
Опять люди путают собеседование с Олимпиадой
Судя по комментариям, радует, что еще не все потеряно, и любой здравомыслящий человек считает клоунадой такой собес.
Автору желаю почаще двигать всякие :nth 100500 и гордиться этим, а не нажать ф12 и посмотреть, что и где применено
К тому же, сказано, что вопросы о последних новвоведениях.
А последние - это @container, @starting-style, :has, :is и тд
ничего этого здесь нет
"Координаты псевдо-элемента ::before не будут рассчитаны от вьюпорта. Правда или ложь?"
Вообще неправильный ответ, все потому родитель fixed элемента с position:aboslute, потому координаты расчитываются от его левого верхнего края, а не вьюпорта
will-change тут вообще не при чем
will-change тут вообще не при чем
Это уже ошибка. У меня есть статья со ссылками на спеку. Там всё объяснено
По поводу will-change проверил, был не прав. Так как в 99.9% вместе с absolute идут -translate-x-1/2 и -translate-y-1/2, что дают родителю трансформ и расчет идет от него, а не вьюпорта.
По остальному вам в комментариях правильно написали, это не собес - это шоу с самоутверждением за счет собеседуемого.
В проде 1% этих примеров пригодится, и это не учитывая того, что в крупных фреймворках уже есть варианты разделения css так, чтобы они не мешались между компонентами, что сразу отсеет вопросы "а что тут выведет"
Вторая половина решается ксс фреймворками как tailwind, где можно написать пачку классов и забыть, не парясь, что и где потом применится, так как все будет нормально
Это уже ошибка.
Ну вот ошибка, и что? Дом рухнет? Айти это такая профессия где цена ошибки крайне низка, т.к. всплывёт либо на первом же прогоне, либо дальше на кодревью, QA и т.д. Даже перфокарты уже дырявить не надо и ждать завтрашнего утра, чтобы обнаружить что "ошибка", ё-моё! Программиста зачем-то рассматривают как пилота самолёта или кардиохирга. Которые, несомненно, должны всё помнить в мельчайших деталях. Но у программиста ведь совсем другой характер работы!
Примерно треть ответил, хотя верстаю каждый день. Таким не пользуюсь, стараюсь применять что-то максимально простое, с поддержкой в браузерах около 100% и не создающее головоломок следующим разработчикам, которые будут читать мой код.
С одной стороны, понятно желание нанять человека, который действительно хорошо понимает CSS, а не вайб-кодер.
С другой стороны, тут легко перегнуть палку, требуя знать наизусть детали спеки. И предлагая ему примеры замороченного кода, который не надо писать в реальности.
С третьей стороны, современные фронтендеры (за некоторыми исключениями) верстать не умеют - это печально, но факт. Для большинства это уровень даже не хард, а ближе к импосибиль.

Больше 20 лет занимаюсь фронтенд/фулстек разработкой, верстки не боюсь, делаю её регулярно, но я в первую очередь программист, не верстальщик. Я бы у вас собес не прошёл, это как раз тот случай, когда половина заданий из серии "не делайте так в проде", а вторая половина на заучивание справочников.
Когда я собеседую фронтендеров я спрашиваю, как можно сделать ту или иную штуку в css. Грубо говоря, знает ли он, что есть flexbox и какие возможности он предоставляет, знает ли он про существование псевдоклассов, что они могут позволить сделать и т.д. При этом я не прошу ничего писать, просто рассказать. Если человек верстал, он расскажет, а конкретные свойства и синтаксис он загуглит когда ему надо будет их на практике использовать, даже если забыл, это не важно.
Бедные кандидаты) ну или точней компания с таким собеседующим)
Я конечно спрашиваю про CSS, но там вопросы на уровне block vs inline. И поехали делать дело)
Вот и все мои вопросы. Поделитесь в комментариях своими впечатлениями. Какие вопросы понравились, а какие нет. Интересно узнать ваше мнение.
Ваши вопросы больше похоже на понтануться перед кандидатом, понатнуться статей, а не найти человека, который нужен компании.
Ну может можно развивать CSS с таким рвением. Но сомневаюсь, что вы как-то хоть куда-то пушили.
Поэтому респект за знания, но я бы не тратил свое время пытаясь ответить на эти вопросы) В мире фронта и так ментальный перегруз технологиями и косяками. Еще сидеть гадать между px, em, rem, vh, dvh, layer и прочем. Задача формочку покрасить, большинство UI ваще бекофисная, где всем глубоко пофиг даже на адаптивку, лишь бы работало, показывался товар, и кнопочки кликались.
И не забываем про реальность, где половина из этого просто не работает. Это может быть 1% от юзеров, но при этом миллионы в деньгах. И такое довольно часто происходит на сайтах с трафиком. Обмазываться пре / пост процессорами не всегда поможет
На мой взгляд, достаточно поспрашивать про layout. Как работает display с разными значениями, position, z-index, понимание приоритетов селекторов. Какие псевдоклассы знает и какие кейсы приходилось решать, а если кандидат шарит за гриды, вообще песня, но знания гридов считаю до сих пор опциональным требованием, так как до сих пор по прежнему в основе используется flexbox.
А вопросы из поста можно задавать если цель кандидата завалить :)
Какое значение вычислят браузеры для свойств inline-size и block-size у псевдо-элемента ::before?
Ответ block-size — 60px сомнительный, так как нет контекста, а именно, неизвестно содержимое .awesome-block , которое может быть по высоте и 500px.
ппц комплексы у автора, видимо...
Очень интересно было почитать — я даже в какой-то момент пошёл гуглить CSS4, думая, что пропустил выпуск нового релиза, раз столько всего нового.
На собеседовании спрашивать такое - сюр какой-то, но в целом если поток кандидатов настолько велик, то и такому место быть.
Не понимаю, почему все хейтят. Нормальное собеседование для браузерных движков!
Неплохая подборка для самопроверки, хотя половина из этого в реальной жизни встречается реже, чем единорог
:nth-child с of - красиво, но в 99% случаев задача решается добавлением одного класса - хорошо для олимпиады по css, но не для повседневной верстки
Если на этом собеседовании будут вопросы и по js, то видимо из разряда что выведет в консоль: 'b'+'a'+ + 'a' 'a').toLowerCase()
Вёрстка это сложно, хотя не все об этом знают. Более менее понимать возможности css, считаю, необходимо. Не знаю насчет вопросов к собеседованию, но в виде статьи полезно, спасибо. Насчет хейта не расстраиватесь, людям неприятно признавать, что их навыки ограничены, особенно если они уверены в обратном.
Спасибо за поддержку! У меня только положительные эмоции. Я в целом рад, что статья вызвала интерес.
Верстка сложно - если городить код из примеров на чистом css и в одном файле на 5к строк.
В проде с возможностями фреймворков, пре процессоров, вариаций encapsulation внутри одного компонента, все это очень просто. А что-то сложное уже делается на джсе с GSAP и подобными библиотеками.
Достаточно отличать блок от грида с флексом, паддинг от маргина, и знать, как вертикально центрировать. За неделю можно выучить весь пул классов tailwind и больше не задаваться вопросами "что же тут выведет?"
Классический список вопросов, чтобы почувствовать себя умным на собеседовании и завалить кандидата. Вместо того чтобы дать простую бизнес-задачу и посмотреть, как человек ее решит, мы будем гонять его по @layer и will-change. Идеальный способ нанять теоретика, а не инженера
Надо использовать на собесах как чек того, юзает ли кандидат чатгпт как подсказку. Если ответит - сто процентов мухлюет))
Вас за одну только постановку вопроса с двойным отрицанием надо в отдельный котел. Я пока прочитал, у меня мозг чуть не сломался.
В следующем примере правило не применится, потому что в элементе div нет элемента
Можно ведь задать вопрос: применится ли правило в …
Тут можно дать неверный ответ, тупо из-за кривой формы построения вопроса.
Это точно вопросы на собеседование? На собеседовании важно за минимум вопросов оценить уровень компетентности опрашиваемого, а тут даже если ни на один не ответить, все равно могут быть приемлемые знания.
Ну есть такие люди. Я как то в контору собеседовался, у которой большие проблемы с оптимизацией запросов к бд, дак вместо того чтобы о насущном, интервьюверу было интересней низкоуровневое фуфло и знаю ли я, цитата "как работают баферс".
Хреновый опыт. Понимаю, почему у вас такая реакция. Когда проходил собеседования тоже видел людей, которые хотели самоутвердится.
Только вы зря меня к их числу причислили. Моя задача проверить знание CSS, конкретного человека, чтобы дать ему фидбек. Я спокойно указываю на то, что он знает, а что упускает.
Я самоучка, знаю, что такое учиться. На беседе со мной вполне нормально говорить "не знаю". Карательных мер не будет. Наоборот я разверну эту тему и сделаю так, чтобы человеку было интересно.
Это конечно при условии, если человек интересуется. Если CSS ему не интересен, то я не мучаю. Даю фидбек "CSS не интересен. Развиваться в нем не хочет". И такой мой фидбек часто снимает вопросы, потому что нет смысла насиловать человека тем, в чем он не заинтересован.
Это как в вашем случае с оптимизацией запросов в бд. Я сделал вывод, что вам интересна эта тема. Следовательно можно развернуться ее. Также задать вопросы, которые другим покажутся херней, а вам будет интересно на них ответить.
Только вы зря меня к их числу причислили
Не уверен что это так.
Моя задача проверить знание CSS
В моей картине мире по важности это где то на 435 месте, я выше это расписал.
Я самоучка, знаю, что такое учиться.
Я тоже, но у вас не было бы шанса со мной побеседовать.
Я сделал вывод, что вам интересна эта тема.
Интересна? Как разработка в целом.
Следовательно можно развернуться ее.
У вас на проекте нужно большую часть времени оптимизировать запросы? Вы именно это хотите спросить CTO/тимлида/архитектора?
Также задать вопросы, которые другим покажутся херней
Только если вы не скатитесь в проверка академических знаний, ака какой порядок аргументов у функции. Потому что будь вместо CSS в статье такие же вопросы по SQL, PHP, Java, JS, HTML, whatever, то это не сильно лучше.
а вам будет интересно на них ответить
Знаете я давным давно бросил квизы и прочие что где когда. Мой мозг просто не занимается бессмысленной работой.
А реакция моя обусловлена огромным количеством сомнительных риуталов в индустрии, которые еще и сдобрены щедрой порцией картинного закатывания глаз.
Мой опыт около 4 года в работе с фронтом. Не считаю себя профи, но я не ответил ни на 1 вопрос так как этого хотел автор. Первый же вопрос вводит в ступор, отбивает интерес полностью. Второй вызывает жуткое раздражение, последующие гнев и нежелание в таком разбираться. Я заставлял себя читать статью по вертикали, чтобы понять не упустил ли я что-нибудь. Даже, на первый взгляд, простые вопросы вызвали у меня гнев.
После прочтения пришел к выводу, что не верю что этому есть практическое применение, и дело не в поддержке браузерами, а в избыточности такого функционала и этого понимания. Это не нужно и вредно, ведь если кто-то на проекте начинает таким баловаться, остальным тоже придется в это погружаться. Я верю в то что есть пути сделать тоже самое, но проще с точки зрения читаемости кода на том же css, а так же более просто это объяснить. Такое понимание крайне избыточно, а избыточность это плохо ведь оно забирает драгоценное время разработки и нервы команды которой в этом придется разбираться.
Пытаясь осознать почему у меня эти вопросы вызвали столько хейта, я пришел к выводу что для начала необходимо убедить кандидата/читателя в необходимости этих вопросов. Мне не нужен отбойный молоток чтобы забить гвоздь, я предпочту обычный.
Я понимаю что автор повышает квалификацию кандидатов, но такими вопросами вы лишь делаете простое сложным. На мой взгляд было бы куда полезные рассказать как сделать "сложное" - "простым" либо ещё лучше "простое" - "ещё проще". Чтобы ваше собеседование открыло глаза соискателям на какие-нибудь фундаментальные вещи которые многие упускают, что-то на подобии там понимания жизненного цикла компонент реакта(прошу не агрится на базу, это лишь пример). Начать с простых вопросов, завлечь интерес кандидата, вселить в него уверенность и интерес, и постепенно бомбардировать более сложным, если это необходимо. Вы действительно профессионал в своём деле и Вам точно это под силу.
Тут дело скорее в подаче вопрсоов. Задавая сложные вопросы слёту, вы получите реакцию как в комментариях под этим постом. В своём же комментарии я попытался объяснить свои мысли почему так вышло.
На некоторые вопросы данной статьи я ответил верно, но моё объяснение отличалось от вашего, где-то кардинально(можно сказать я просто угадал), где-то нет. Мне было тяжело из-за того, что интереса не возникло. Вполне может быть что я бы и больше вопросов осилил, но желание и интерес были отрублены в начале. Хотя я и почерпнул для себя новые знания из статьи, за что благодарен, но осталось ощущение что если бы мне интересно было отвечать на вопросы у меня бы: 1) не пригорело, 2) я запомнил бы куда больше. И, думаю, в вашу сторону камней бы не летело)
Задавая сложные вопросы слёту
Я задаю вопросы с определенной целью. Большинство вопросов были по тому новому, что вышло за последние несколько лет. Или по тому, что в предыдущие разы я не задал.
Форма вопросов тоже задана с определенной целью. Я ее достиг.
И, думаю, в вашу сторону камней бы не летело)
Я занимаюсь этим 10 лет. Всегда была такая реакция. CSS это "удел детсада. Там нечего изучать. Недели хватит". Логично, что с таким отношением к технологии люди дают такие комментарии. Их право. Ничего против не имею. Это не моя целевая аудитория.
Хотя я и почерпнул для себя новые знания из статьи
Это главное. Цель тоже достигнута.
Это было по существу. Дальше лично вам.
если бы мне интересно было отвечать на вопросы
Я пишу материально на Хабре для "читателя в вакууме". Если хотите, чтобы лично вам было интересно, для этого я занимаюсь созданием контента на платной основе с учетом личных потребностей читателя (интереса, знаний и.т.д). Можете написать мне. Контакты есть в профиле.
хахаххах не статья, а лакмусовая бумажка - часть комментаторов просто боятся признаться себе что они не разбираются в теме и начинают злиться, негодовать "да кому, зачем, и когда это надо"
ну камон, приходите вы на собес, вас спрашивают "что такое замыкание?". а вы идеально знаете ответ, это буквально то, с чем вы постоянно работали последнем проекте, и тут вы отвечаете "Простите, вы это серьезно? Вам настолько делать нечего? Этот вопрос вызывает жуткое раздражение"
нет, так не будет, вы дадите ответ просто потому что знаете. вот и всё
Мой список вопросов о CSS для собеседования в 2025 году