Las pseudo-clases son "palabras" adicionales que agregamos en una definición CSS para establecer algún tipo de dato especial y tal vez, la más conocida es :hover [ 1 2 3 ]
Hay una en particular llamada nth-child que jamá había escuchado nombrar y me ha maravillado. Lamentablemente, no funciona en Internet Explorer aunque lo hace en el resto de los navegadores modernos: Firefox 3.5, Safari, Opera y Chrome.
Lo que hace es identificar un elemento dentro de una lista de etiquetas. Por ejemplo, si pusiéramos una serie de párrafos dentro de un DIV:
<div id="ejemplo">
<p> [ PARRAFO 1 ] </p>
<p> [ PARRAFO 2 ] </p>
<p> [ PARRAFO 3 ] </p>
<p> [ PARRAFO 4 ] </p>
</div>
#ejemplo p:nth-child(1) { color: LightCoral; }
#ejemplo p:nth-child(2) { color: AliceBlue; }
#ejemplo p:nth-child(3) { color: GreenYellow; }
#ejemplo p:nth-child(4) { color: Gold; }p:nth-child(1) { color: LightCoral; }
p:nth-child(2) { color: AliceBlue; }
p:nth-child(3) { color: GreenYellow; }
p:nth-child(4) { color: Gold; }
#ejemplo p:nth-child(2n+1) { /* propiedades */ }#ejemplo p:nth-child(2n) { /* propiedades */ }| nth-child(2n+1) = IMPARES 1 3 5 7 | nth-child(2n) = PARES 2 4 6 |
|
|
- el primer item de la lista
- el segundo item de la lista
- el tercer item de la lista
- el cuarto item de la lista
- el quinto item de la lista
- el sexto item de la lista
- el septimo item de la lista
ul#milista li:nth-child(3) {
background-color: #6495ED;
font-weight: bold;
text-transform: uppercase;
}- el primer item de la lista
- el segundo item de la lista
- el tercer item de la lista
- el cuarto item de la lista
- el quinto item de la lista
- el sexto item de la lista
- el septimo item de la lista
ul#milista li:nth-child(2n+1) {
background-color: #789;
color: #FFF;
}- el primer item de la lista
- el segundo item de la lista
- el tercer item de la lista
- el cuarto item de la lista
- el quinto item de la lista
- el sexto item de la lista
- el septimo item de la lista
ul#milista li:nth-child(3n+1) {
background-color: #000;
border: 2px solid #456;
color: #DEF;
font-size: 18px;
}







18 comentarios:
Wow... excelente... nos ahorrará muchísima línea de código en caso que necesitemos diferenciar cierta cantidad de elementos ordenados, pero aún me queda la duda, el valor numérico (o la expresión algebráica) que le das a la clase reconoce automáticamente las etiquetas de cada bloque Div, es decir si tengo
<div id='cualquiera'>
<img src='' .../><br/>
<br/>
<p>Bla bla bla</p>
</div>
El automáticamente ignora esas etiquetas "nulas" por decirlo así como los saltos de línea, los <hr/> y demás, o solo aplica a ciertas etiquetas?
Muy interesante...
Se me ocurre.... diferenciar los comentarios con esto... es una lista numerada, sirve?
Felipe:
Habría que probar pero, así, en teoría, diría que no, que sólo identificará listas de etiquetas iguales. De todas formas, etiquetas com BR y HR son reemplazables con CSS y me imagino que todo dependerá de cada caso en particular.
egoloco:
Sí. en cualqueir tipo de etiqueta, no solo en las listas.
A ver, JMiur, si me explico bien:
En mi blog "Cuaderno Nocturno" ( http://dunsany8.blogspot.com ), me ha surgido un problemilla: y es que anoche, al redimensionar la imagen de mi última entrada, toda la barra lateral (o sidebar) se me ha descolocado, y en lugar de ser lateral se ha ido al sótano, abajo del todo, al final de la página.
Cuando le doy a "configuración" lo veo todo correctamente, con la sidebar a la izquierda, pero en el blog no se ve así, sino abajo, con lo que el blog ha perdido su anterior estética.
Y además me han desaparecido, como por encanto, varios de los gadgets que tenía puestos, como un reloj, un geomap y el contador de visitas...
No entiendo qué puede tener que ver lo que ha pasado con el simple acto de redimensionar una imagen; el aumento fue mínimo.
¿Hay alguna posibilidad de modificar alguna cosa en la plantilla, para que todo vuelva a su sitio original?
Al ver el desastre volví la imagen a su anterior tamaño, pero la sidebar sigue abajo.
Lo mismo es un cambio de Blogger, pero no creo.
De antemano te agradezco cualquier ayuda que me puedas prestar.
Y por si acaso no quieres contestar aquí, te dejo mi dirección de mail: dunsany8@yahoo.com
Un saludo, maestro.
Antonio HM.
Una lástima :( hoy la energía viene bastante hija de Winiie de Pooh :X, no se carga, tiembla todo.
Un día bonito :)
Huy que bueno esta eso, yo sabia que eso se podía hacer con Jquery pero con el CSS es mas sencillo
La nth-child se va a usar con fuerza tiene un resultado muy atractivo.
Te felicito por la elaboración de la entrada ha quedado genial :)
Antonio:
No veo nada de eso, veo la sidebar a la izquierda, creo que normal, tanto en IE como en Firefox ¿Sigues notando lo mismo?
Al redimensionar una imagen de un post, incluso poniendo valores gigantes, no deberías tener problemas de desconfiguración ya que las definiciones del CSS de tu plantilla son correctas, hay una (overflow:hidden) que hace justo eso, evitar que si el ancho de algo que colocas supera el ancho de la columna, esta se descompagine. Lo que hará es "cortarse" es decir, la verás sólo parcialmente.
Si lo que ocurrió es que la sidebar se fue para abajo, me da la impresión (es una suposición) que tal vez, había algún error en la sintaxis del post mismo y eso si puede provocar el problema que describes; lo que no veo, insisto, es que ahora esté mal.
Graciela:
Suele pasar :D
JorG:
Sin duda que si, el futuro se presenta interesante :D
Gem@
Es de lo mejor que he visto, muy útil, creo que tendrá muchas posibilidades; falta que la apliquen todos los navegadores :D
Guardando este post en el cofre de herramientas.
Gracias por compartir, :)
Para eso los pongo, para tenerlos a mano yo mismo :D
Gracias, JMiur, ya lo solucioné, por eso no lo has visto. El problema venía por un vídeo de Youtube que se cargó mal y descompaginó la sidebar. Nada más quitarlo todo volvió a su sitio. Y luego lo volví a cargar, pero de diferente manera, sin el "embed".
Gracias por tu atención.
Un saludo.
Era l oque me imaginé, Antonio, que el problema estaba en el post mismo. Me alegra que encontraras el error :D
Hola Jmiur.
Se nos ocurre que es posible diferenciar los comentarios, pero más específicamente los avatares, y más específicamente la de los usuarios anonimos.
No nos ha funcionado, no se si es porque las imagenes las estamos extrayendo de un sprite. :(
El pedazo de codigo que muestra el avatar es algo asi: (unspr es la clase que carga el background del sprite)
<div id='vvv'> <span class='avatar-image-container unspr' style='background-position:-32px -156px;width:50px;height:50px;display:block;'>
</span> </div>
Intentamos poniendolo entre un Div con un id único de tal manera que el css quedo así:
#vvv span:nth-child(1) {background-position:-245px -53px;}
//Para cambiar la imagen del anónimo por otra
Tenemos Firefox 3.6 asi que no creemos que sea el navegador, o será porque los comentarios se muestran con un bucle. ¿Que habría que corregir?
Gracias por tu atención.
Prueba agregarle la palabra !important
#vvv span:nth-child(1) {background-position:-245px -53px !important;}
Hola JMiur.
Te cuento que si funcionó añadiendo !important a la declaracion del css... pero funcionó poniendo (1) ... si pongo cualquier expresion algebraica no la reconoce,
y solo funciono añadiendo (odd) //numeros impares
En la referencia http://www.w3.org/TR/css3-selectors/#nth-child-pseudo esas son las opciones, pero entonces el problema es que como que no se aplicaria al bucle que muestra los comentarios...
Me imagino de pronto que podria lograrse algo si se combina con la numeracion de comentarios... algo del estilo... si es impar, y ademas es anonimo... muestre la primera imagen.. y si no muestre la otra... pero me suena dificil :S
Por cierto... no se si sea solo a mi.. pero tu widget con los 'ultimos comentarios' no se está actualizando... veo el mismo comentario desde hace como 4 horas
"
Roberto Caamaño
Que genial! "
Muchas de esas opciones del CSS3 son experimentales y los navegadores no las interpretan igual así que una cosa es lo que sugiera la w3org y otra distinta es lo que el navegador que uses ya tenga incorporado. Desconozco el tema.
Lo de los ultimos comentarios, es tal cual. Es un problema general o pro lo menos, lo bastante amplio como para abarcar a cuanto blog he visto en las últimas horas.
Esperemos que se solucione prontamente. :)
Y sobre lo de las imágenes... voy a dejarlo así... y mas bien.. algun dia que ande jugando con la plantilla roto las imagenes... mais sencillo.
Gracias por tu atención.
:)
¿Quiere dejar un comentario?
recuerde que los comentarios están siendo moderados y serán publicados a la brevedad ...
Todos los archivos y demos alojados en Fileden han sido redireccionados y deberían estar funcionando correctamente.
De todos modos, también puede accederse a ellos a través de SkyDrive
Si le gusta ir a lo seguro utilice este botón para abrir los comentarios en una ventana modal en esta misma pagina.
Si añora tiempos idos, use este enlace para agregar un comentario al viejo estilo ...