Question d'entretien pour Développeur frontend

Deux règles ciblent le même élément et définissent la même propriété. Comment le navigateur décide-t-il laquelle l'emporte ?

Ce que le recruteur cherche à évaluer, comment structurer votre réponse et un exemple parlé à adapter.

Réponse rapide

Le navigateur résout dans cet ordre : origine et importance d'abord, puis les couches de cascade, puis la spécificité, puis l'ordre du document. Les styles inline passent devant les règles auteur normales, et une déclaration important inverse l'ordre des origines, donc une règle utilisateur ou user agent en important peut battre une règle auteur en important. Dans une même couche, la spécificité compte les id, puis les classes, attributs et pseudo classes, puis les sélecteurs d'élément. À égalité, c'est la règle qui vient en dernier qui gagne.

Pourquoi les recruteurs posent cette question

À grande échelle, les bugs CSS sont des bugs de cascade, pas de syntaxe. Le recruteur vérifie si vous savez raisonner sur un conflit de spécificité au lieu d'ajouter un important de plus et de passer à autre chose. Mentionner les couches de cascade montre que vous avez suivi la façon dont les bases de code modernes isolent les styles tiers et les classes utilitaires. Ça ouvre aussi la porte à la façon dont vous structureriez le CSS pour que ces conflits cessent d'apparaître.

Comment structurer votre réponse

  • Listez l'ordre de résolution avant de parler de chiffres de spécificité.
  • Expliquez la spécificité comme trois compartiments, pas un score unique.
  • Dites où se placent les couches de cascade et pourquoi elles aident.
  • Donnez votre règle sur les cas où important est acceptable.

Exemple de réponse

Exemple parlé, à la première personne

Je vois ça comme une suite de départages. D'abord le navigateur regarde l'origine et l'importance, donc un style inline bat une règle de feuille de style et une déclaration important change complètement l'ordre. Ensuite les couches de cascade, la partie que les gens oublient : une règle hors couche bat n'importe quoi dans une couche, quelle que soit la spécificité de la règle en couche, et les couches déclarées plus tard battent les précédentes. C'est seulement après ça qu'il compare la spécificité, et c'est trois compartiments, les id puis les classes, attributs et pseudo classes, puis les sélecteurs d'élément, comparés de gauche à droite, donc un seul id bat n'importe quel nombre de classes. Si tout est à égalité, la dernière dans l'ordre du document gagne. En pratique, j'utilise les couches pour rendre ça ennuyeux. Je mets le reset dans une première couche, puis le tiers, puis les composants, puis les utilitaires en dernier, comme ça une classe utilitaire gagne toujours sans avoir besoin d'important. Le seul endroit où j'utilise encore important, c'est pour une règle vraiment non négociable, en général quelque chose dans une feuille de style d'impression.

Vous passez cet entretien bientôt ? GhostPilot écoute votre appel en direct, repère la question dès qu'elle est posée et affiche une réponse structurée à l'écran en temps réel. Essayez-le lors de votre prochain entretien blanc, ou prenez un Session Pass à $29, sans abonnement, pour le jour J.

Voir comment ça marche

Questions de relance à prévoir

  • Que fait la pseudo classe where à la spécificité, et pourquoi est-ce utile ?
  • Comment les couches de cascade interagissent-elles avec les déclarations important ?
  • Comment déboguer une règle qui devrait s'appliquer mais ne s'applique pas ?

Autres questions pour Développeur frontend

Votre recruteur posera sa propre version de celle-ci. Collez votre véritable fiche de poste dans le Question Predictor gratuit et obtenez les 20 questions que ce poste a le plus de chances de poser, avec ce que chacune cherche vraiment à sonder.

Prédire mes questions

Répétez les questions difficiles avant qu'on vous les pose

Entraînez-vous avec un copilote en direct, puis présentez-vous prêt. Un Session Pass à $29 vous accompagne pendant l'entretien, sans abonnement et sans engagement.

Obtenir GhostPilot