Tengo una div
etiqueta que contiene varias ul
etiquetas.
Puedo configurar las propiedades CSS solo para la primera ul
etiqueta:
div ul:first-child {
background-color: #900;
}
Sin embargo, mis siguientes intentos de establecer propiedades CSS para cada ul
etiqueta, excepto la primera, no funcionan:
div ul:not:first-child {
background-color: #900;
}
div ul:not(:first-child) {
background-color: #900;
}
div ul:first-child:after {
background-color: #900;
}
¿Cómo puedo escribir en CSS: "cada elemento, excepto el primero"?
fuente
Esta solución CSS2 ("cualquiera
ul
después de otraul
") también funciona y es compatible con más navegadores.A diferencia de
:not
y:nth-sibling
, el selector de hermanos adyacentes es compatible con IE7 +.Si tiene JavaScript cambia estas propiedades después de que se carga la página, debe mirar algunos errores conocidos en las implementaciones de IE7 e IE8 de esto. Ver este enlace .
Para cualquier página web estática, esto debería funcionar perfectamente.
fuente
ul ul div ul
(donde estos elementos son hermanos), solo se seleccionará el segundo ul, ya que el último no tiene unul
anterior a sí mismoComo IE6-8
:not
no lo acepta , te sugiero esto:Así que eliges cada
ul
elemento principal excepto el primero .Para obtener más ejemplos, consulte el artículo "Útil: recetas del enésimo niño" de Chris Coyer .
nth-child
fuente
Soporta IE7
fuente
not(:first-child)
Parece que ya no funciona. Al menos con las versiones más recientes de Chrome y Firefox.En cambio, intente esto:
fuente
ul:not(:first-child)
significa literalmente "cualquierul
elemento que no sea el primer hijo de su padre", por lo que no coincidirá incluso con el primeroul
si está precedido por otro elemento (p
encabezado, etc.). Por el contrario,ul:not(:first-of-type)
significa "cualquierul
elemento excepto el primeroul
en el contenedor". Tiene razón en que OP probablemente necesitó el último comportamiento, pero su explicación es bastante engañosa.Puedes usar cualquier selector con
not
fuente
No tuve suerte con algunos de los anteriores,
Este fue el único que realmente funcionó para mí
ul:not(:first-of-type) {}
Esto funcionó para mí cuando intentaba que el primer botón que se muestra en la página no se vea afectado por una opción de margen izquierdo.
esta fue la opción que probé primero pero no funcionó
ul:not(:first-child)
fuente
Puede usar su selector con el siguiente
:not
ejemplo, puede usar cualquier selector dentro del:not()
Más ejemplos
fuente
Como lo usé
ul:not(:first-child)
es una solución perfecta.¿Por qué es esto perfecto porque al usarlo
ul:not(:first-child)
podemos aplicar CSS en elementos internos? Me gustali, img, span, a
etiquetas, etc.Pero cuando se usan otras soluciones:
y
y
y
Estos restringen solo CSS de nivel ul. Supongamos que no podemos aplicar CSS
li
como 'div ul + ul li'.Para elementos de nivel interno, la primera solución funciona perfectamente.
y así ...
fuente