[html] ¿Por qué los navegadores coinciden con los selectores de CSS de derecha a izquierda?


Answers

Permite la conexión en cascada de lo más específico a lo menos específico. También permite un cortocircuito en la aplicación. Si la regla más específica se aplica en todos los aspectos a los que se aplica la regla principal, se ignoran todas las reglas principales. Si hay otros bits en el elemento primario, se aplican.

Si fue al revés, formateará de acuerdo con los padres y luego sobrescribirá cada vez que el niño tenga algo diferente. A la larga, esto es mucho más trabajo que ignorar los artículos en las reglas que ya se han tenido en cuenta.

Question

Los selectores CSS se corresponden con los motores de búsqueda de derecha a izquierda. Entonces primero encuentran a los niños y luego revisan a sus padres para ver si coinciden con el resto de las partes de la regla.

  1. ¿Por qué es esto?
  2. ¿Es solo porque dice la especificación?
  3. ¿Afecta el diseño final si se evaluó de izquierda a derecha?

Para mí, la forma más sencilla de hacerlo sería utilizar los selectores con el menor número de elementos. Entonces ID primero (ya que solo deberían devolver 1 elemento). Entonces tal vez las clases o un elemento que tiene la menor cantidad de nodos, por ejemplo, puede haber solo un tramo en la página, así que vaya directamente a ese nodo con cualquier regla que haga referencia a un tramo.

Aquí hay algunos enlaces que respaldan mis afirmaciones

  1. http://code.google.com/speed/page-speed/docs/rendering.html
  2. https://developer.mozilla.org/en/Writing_Efficient_CSS

Parece que se hace de esta manera para evitar tener que mirar a todos los hijos de padres (que podrían ser muchos) en lugar de a todos los padres de un niño, que debe ser uno. Incluso si el DOM es profundo, solo vería un nodo por nivel en lugar de múltiples en la concordancia de RTL. ¿Es más fácil / más rápido evaluar los selectores de CSS LTR o RTL?




Related