Contenidos
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:
- [atributo]: elementos que tienen un atributo llamado atributo independientemente de su valor
- [atributo=valor]: elementos que tienen un atributo llamado atributo con el valor especificado
- [atributo^=valor]: elementos que tiene un atributo llamado atributo y cuyo valor empieza por el valor especificado
- [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