Nuevos selectores de CSS3

Selector de elementos adyacentes

Sustituye al selector de CSS2 h1 + h2 {...}, permitiendo seleccionar elementos que no estén obligatoriamente adyacentes, sino que puede haber otros elementos entre ambos.

Etiqueta de nivel 1

Mi texto principal entre etiquetas p...

Etiqueta de nivel 2

Otra etiqueta de nivel 2

<h1>Etiqueta de nivel 1</h1> 
	<p>Mi texto principal entre etiquetas p...</p>
	<h2>Etiqueta de nivel 2</h2>
	<h2>Otra etiqueta de nivel 2</h2>
				
h1~h2 {font-style: italic};				
				

Selector de atributo

Vamos a aplicar estilos a distintos tipos de enlaces utilizando los selectores de atributos:

	a { 
	   text-decoration: none; 
	} 
	a[hrefˆ="mailto"] { 
		color: red;
		font-weight: bold;
	}
	a[href$=".pdf"] { 
		font-style: italic;
		color: blue;						
	}
	li[class*="importante"] {
		color: purple;
	}
				

La pseudo-clase de vínculo

Introducción | Resultados | Conclusión

Introducción

Lorem ipsum dolor sit amet...

Resultados

Morbi ut dolor interdum odio mollis dapibus...

Conclusión

Integer semper eget mauris gravida congue...

	a { 
		text-decoration: none; 
	} 

	a:target { 
		background-color: gold; 
	}
	
	p > a{
		color: blue;
	}		

Las pseudo-clases estructurales

Vamos a mostrar varios ejemplos del comportamiento de las pseudo-clases con los elementos descendientes:

La pseudo-clase :nth-child(x) permite seleccionar el enésimo elemento hijo de un elemento padre. Ese número x es el argumento de los paréntesis.

  • Uno
  • Dos
  • Tres
  • Cuatro
  • Cinco
  • Seis
  • Siete
	li:nth-child(2){ 
		background-color:gold; 
	}		
			

El argumento x puede ser una palabra clave: :nth-child(odd) para seleccionar los hijos impares y :nth-child(even) para seleccionar los hijos pares.

  • Uno
  • Dos
  • Tres
  • Cuatro
  • Cinco
  • Seis
  • Siete
	li:nth-child(odd){ 
		background-color: gold; 
	}		
			

El argumento x puede ser un cálculo matemático de tipo: an+b. n para representar un valor que comience con 0 y que se incremente con valores distintos de 1. El valor de n puede ser negativo o positivo.

  • Uno
  • Dos
  • Tres
  • Cuatro
  • Cinco
  • Seis
  • Siete
	li:nth-child(n+3){ 
		background-color: gold; 
	}		
			

  • Uno
  • Dos
  • Tres
  • Cuatro
  • Cinco
  • Seis
  • Siete
	li:nth-child(-n+3){ 
		background-color: gold; 
	}		
			

  • Uno
  • Dos
  • Tres
  • Cuatro
  • Cinco
  • Seis
  • Siete
	li:nth-child(3n){ 
		background-color: gold; 
	}		
			

  • Uno
  • Dos
  • Tres
  • Cuatro
  • Cinco
  • Seis
  • Siete
	li:nth-child(3n+1){ 
		background-color: gold; 
	}		
			

Las nuevas pseudo-clases :first-of-type y :last-of-type permiten seleccionar el primer y el último elemento de un tipo específico.

  • Uno
  • Dos
  • Tres
  • Cuatro
  • Cinco
  • Seis
  • Siete
	li:first-of-type, li:last-of-type { 
		background-color: gold; 
	}		
			

La pseudo-clase :nth-of-type() permite seleccionar el enésimo elemento de un tipo específico. Los argumentos posibles son los mismos que vimos con la pseudo-clase :nth-child().

Donec ullamcorper nulla non metus auctor fringilla. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Cum sociis natoque penatibus et magnis dis parturient montes.

	strong:nth-of-type(2) { 
		background-color: gold; 
	}
			

La pseudo-clase :only-child permite seleccionar aquellos elementos que no tengan hermanos.

Donec sed odio dui. Aenean lacinia bibendum nulla sed consectetur.Donec id elit non mi porta gravida at eget metus. Nullam id dolor id nibh ultricies vehicula ut id elit.

Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis montes, nascetur ridiculus mus.

	strong:only-child { 
		background-color: gold; 
	}
			

La pseudo-clase :only-of-type permite seleccionar los elementos de un tipo determinado que no tengan hermanos.

Donec sed odio dui. Aenean lacinia bibendum nulla sed consectetur.Donec id elit non mi porta gravida at eget metus. Nullam id dolor id nibh ultricies vehicula ut id elit.

Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.

	strong:only-of-type { 
		background-color: gold; 
	}		
			

La pseudo-clase :not() nos permite seleccionar todos los demás elementos a excepción del elemento especificado.

Et exerci feugait, facilisis vulputate feugiat, hendrerit veniam vero? Ut praesent accumsan, nisl consequatvel feugiat at duis ex vel ea dignissim duis dignissim, velit qui, suscipit hendrerit vero. Dolore esse luptatum blandit eum commodo blandit feugiat dolore feugiat nisl veniam nibh veniam, et in nisl consequat ut?

	p>:not(u){ 
		background-color: gold; 
	}