Saltar al contenido

Selectores CSS ul li a {…} vs ul > li > a {…}

No dudes en compartir nuestro espacio y códigos en tus redes, danos de tu ayuda para hacer crecer esta comunidad.

Solución:

>” es el selector de niños

” es el selector de descendientes

La diferencia es que un descendiente puede ser un hijo del elemento, o un hijo de un hijo del elemento o un hijo de un hijo de un hijo hasta el infinito.

Un elemento secundario es simplemente uno que está contenido directamente dentro del elemento principal:

 
   
     
    
  

para este ejemplo, foo * coincidiría y mientras que foo > * solo coincidiría .

En cuanto a tu segunda pregunta:

¿Cuál es más eficiente y por qué?

En realidad, no voy a responder a esta pregunta, ya que es completamente irrelevante para el desarrollo. Los motores de renderizado de CSS son tan rápidos que casi nunca* hay una razón para optimizar los selectores de CSS más allá de hacerlos lo más cortos posible.

En lugar de preocuparse por las microoptimizaciones, concéntrese en escribir selectores que tengan sentido para el caso en cuestión. a menudo uso > selectores al diseñar listas anidadas, porque es importante distinguir a qué nivel de la lista se está aplicando estilo.

* si realmente es un problema en la representación de la página, probablemente tenga demasiados elementos en la página o demasiado CSS. Luego, deberá realizar algunas pruebas para ver cuál es el problema real.

ul>li selecciona todo li que son hijos directos de ul mientras que ul li selecciona todo li que están en cualquier lugar dentro (descendiendo tan profundo como quieras) un ul

Para HTML:


Y CSS:

li a color: green; 
li>a color: red; 

el color de Something permanecerá verde pero or Other será rojo

Parte 2, debe escribir la regla para que sea apropiada para la situación, creo que la diferencia de velocidad sería increíblemente pequeña y probablemente eclipsada por los caracteres adicionales involucrados en escribir más código, y definitivamente eclipsada por el tiempo que toma el desarrollador para pensar sobre eso

Sin embargo, como regla general, cuanto más específico sea con sus reglas, más rápido los motores CSS podrán ubicar los elementos DOM a los que desea aplicarlo, así que espero li>a es más rápido que li a ya que la búsqueda de DOM se puede acortar antes. También significa que los anclajes anidados no están diseñados con esa regla, ¿es eso lo que quieres? <~~ pregunta mucho más pertinente.

ul > li > a selecciona solo los hijos directos. En este caso solo el primer nivel del primer nivel

  • dentro de