Selectores

Selectores

Los selectores sirven para identificar los elementos a los que se aplicará el formato definido en la lista de declaraciones

Hay distintos tipos de selectores que pueden ser utilizados para definir las reglas CSS

Vamos a describirlos de los más generales a los más específicos (desde el punto de vista de menor a mayor prioridad)

Selector Universal

Se define con * y se aplica a todos los elementos de la página:



En el ejemplo se han configurado los márgenes y la fuente del texto, que suelen ser algunas de las reglas más usadas

Selector de etiqueta HTML

Indica el estilo que se va a aplicar a un elemento o una etiqueta concreta

Su hay más de uno, serán separados por comas



En el ejemplo se han configurado las etiquetas 1 a 5 de título, aplicándoles la fuente del texto de tamaño grande

Como puede apreciarse, podemos prescindir de < y de > de la etiqueta

Selector de clase

Algunos elementos HTML tienen el atributo class que indica que las clases a las cuales pertenece el elemento

Este atributo nos permite tratar a esa «clase» de elemento de una manera concreta, tanto en la aplicación de estilos CSS como en su comportamiento mediante programación con JavaScript

Para aplicar el selector de clase, usaremos etiqueta.class

En el ejemplo se han configurado el texto en color azul para todos los elementos de la clase cabecera, ya que si no especificamos una etiqueta, se usará por defecto el selector universal *

En el ejemplo se han configurado la alineación del texto centrada solo para los elementos de la clase cabecera que pertenecen a la etiqueta de título <h1>

Debemos tener especial cuidado en no dejar espacios entre la etiqueta, el punto y el nombre de la clase, ya que ese espacio es significativo, como veremos más adelante

Selector de identificador

Algunos elementos HTML tienen el atributo id que indica que ese identificador único pertenece a ese elemento concreto

Para aplicar el selector de identificador, usaremos etiqueta#id

Al igual que con las clases, es muy importante el uso de los espacios

En el ejemplo se han configurado el color de fondo del texto como amarillo, en aquel párrafo que tenga el identificador destacado

Selectores descendientes y adyacentes

Estos selectores permiten seleccionar elementos contenidos dentro de otros de acuerdo a la estructura del árbol DOM

Aquí es donde toman importancia los espacios, ya que si separamos dos selectores con un espacio, entonces estaremos aplicando la regla a todos los descendientes del primer selector

En el ejemplo se han configurado la fuente del texto como Verdana para todos los elementos <p> que son descendientes del elemento <section > (recordemos que pueden ser los descendientes de cualquier nivel, ya que esa regla será heredada)

Se pueden mezclar indistintamente selectores descendientes de clase o de identificador

En el ejemplo se han configurado el color del texto como rojo para cualquier elemento de la clase error que sea descendiente del elemento

Si en vez de aplicarlo a todos los descendientes queremos que sólo se aplique a los descendientes directos (los hijos), entonces usaremos el simbolo >

En el ejemplo se han configurado la fuente del texto como Verdana sólo para los elementos <p> que son hijos del elemento <section >

También podemos seleccionar los elementos hermanos, es decir, aquellos que aparecen justo después de otros elementos, entonces usaremos el simbolo +

En el ejemplo se han configurado la indentación del primer párrafo que aparece justo después de la etiqueta de título <h1>

Selectores de atributos

Estos selectores se utilizan para seleccionar elementos en función de sus atributos

Hay de cuatro tipos:

  1. [atributo]: elementos que tienen un atributo llamado atributo independientemente de su valor
  2. [atributo=valor]: elementos que tienen un atributo llamado atributo con el valor especificado
  3. [atributo^=valor]: elementos que tiene un atributo llamado atributo y cuyo valor empieza por el valor especificado
  4. [atributo$=valor]: elementos que tienen un atributo llamado atributo y cuyo valor termina con el valor especificado

En el ejemplo se han configurado un enlace que queremos en un color distinto si lleva a una url con HTTP seguro

Pseudoclases

Existen selectores especiales para especificar elementos que tienen unas determinadas propiedades

Son clases virtuales, ya que no se especifican en el HTML, pero representan las posiciones o estados en los que se puede encontrar un elemento mientras se visualiza en el navegador

En el ejemplo se han configurado para que se aplique solo si un elemento es el primer hijo de su padre, para ello hemos usado la pseudoclase first-child, solo el primer elemento <li> de una lista de viñetas (<ul>) aparecerá en color verde

Existen otras pseudoclases que nos ayudarán a seleccionar a un hermano concreto de entre los hijos de un elemento:

  • :nth-child(n) : representa el n-ésimo hermano

    Permite incluir una forma más compleja como:

    • :nth-child(even) : que representa los hijos que ocupan posiciones pares
    • :nth-child(odd) : que representa los hijos que ocupan posiciones impares

    (por ejemplo para hacer que las filas impares de una tabla tengan distinto color de fondo y tener un efecto cebreado en una tabla)

  • :nth-last-child(n) : similar al anterior, pero empezando a contar desde el final

Hay también pseudoclases dinámicas, que indican el estado de los elementos cuando el usuario interactúa con ellos:

  • :hover : se utiliza para establecer el estilo cuando el usuario coloca el ratón sobre el elemento
  • :active : se utiliza para establecer el estilo cuando el usuario pincha sobre el elemento o mantiene el botón del ratón pulsado sobre él
  • :focus : se utiliza para establecer el estilo cuando el elemento tiene el foco

También son muy típicas las pseudoclases relacionadas con los los enlaces:

  • a:link : establece el estilo del enlace cuando aún no se ha visitado o cuando el usuario aún no lo ha pulsado
  • a:hover : establece el estilo cuando el usuario coloca el ratón sobre el elemento de enlace
  • a:active : establece el estilo cuando el usuario pincha sobre el enlace
  • a:visited : establece el estilo cuando el usuario ya lo ha visitado

En el ejemplo se han configurado el estado de los enlaces sin visitar, visitados o cuando pasemos el ratón sobre ellos

Al usar este CSS, los enlaces del documento aparecerán sin subrayar y en verde

Al situar el ratón sobre ellos pararán a azul y, una vez visitados, pasarán a rojo

Ejemplo de Selectores en acción

En el siguiente ejemplo se ha incluido una página HTML y varios de los selectores explicados anteriormente

Puedes comprobar el resultado visualizándolo por ti mismo en tu navegador y si no utilizas un CSS reset, podrías tener resultados distintos en otros navegadores

Ahora mostramos el contenido del fichero ejemploSelectores.css