El navegador lo resuelve por orden: primero origen e importancia, luego capas de cascada, luego especificidad, luego orden en el documento. Los estilos en línea ganan a las reglas normales de autor, y una declaración important invierte el orden de origen, de modo que una regla important de usuario o de agente de usuario puede ganar a una important de autor. Dentro de una capa, la especificidad cuenta id, luego clase, atributo y pseudoclase, luego selectores de elemento. Los empates los gana la regla que aparece más tarde.
Por qué lo preguntan los entrevistadores
Los bugs de CSS a escala son bugs de cascada, no de sintaxis. El entrevistador comprueba si sabes razonar sobre un conflicto de especificidad en vez de añadir otro important y seguir adelante. Mencionar las capas de cascada demuestra que estás al día de cómo las bases de código modernas aíslan estilos de terceros y clases utilitarias. También abre la puerta a cómo estructurarías el CSS para que estos conflictos dejen de aparecer.
Cómo estructurar tu respuesta
- Enumera el orden de resolución antes de hablar de números de especificidad.
- Explica la especificidad como tres cubos, no como una única puntuación.
- Di dónde encajan las capas de cascada y por qué ayudan.
- Da tu regla sobre cuándo es aceptable usar important.
Ejemplo de respuesta
Lo veo como una secuencia de desempates. Primero el navegador mira origen e importancia, así que un estilo en línea gana a una regla de hoja de estilos y una declaración important cambia el orden por completo. Luego las capas de cascada, que es la parte que la gente se salta: una regla sin capa gana a cualquier cosa dentro de una capa por muy específica que sea esa regla, y las capas posteriores ganan a las anteriores. Solo después compara especificidad, y eso son tres cubos, ids, luego clases, atributos y pseudoclases, luego selectores de elemento, comparados de izquierda a derecha, así que un solo id gana a cualquier cantidad de clases. Si todo empata, gana la última en orden de documento. En la práctica uso capas para volver esto aburrido. Pongo el reset en una primera capa, luego terceros, luego componentes y las utilidades al final, así una clase utilitaria siempre gana sin necesidad de important. El único sitio donde todavía uso important es para una regla realmente innegociable, normalmente algo dentro de una hoja de estilos de impresión.
¿Tienes esta entrevista a la vuelta de la esquina? GhostPilot escucha tu llamada en vivo, detecta la pregunta en cuanto la hacen y pone una respuesta estructurada en tu pantalla en tiempo real. Pruébalo en tu próxima entrevista de práctica, o coge un Session Pass de $29, sin suscripción, para la de verdad.
Mira cómo funcionaPreguntas de seguimiento que puedes esperar
- ¿Qué le hace la pseudoclase where a la especificidad y por qué es útil?
- ¿Cómo interactúan las capas de cascada con las declaraciones important?
- ¿Cómo depurarías una regla que parece que debería aplicarse y no lo hace?
Más preguntas para Desarrollador frontend
Tu entrevistador hará su propia versión de esta. Pega la descripción real del puesto en el Question Predictor gratuito y obtén las 20 preguntas que ese puesto tiene más probabilidades de hacerte, con lo que cada una busca en realidad.
Predecir mis preguntas