Selectores en CSS

Introducción

Los selectores en CSS son una herramienta poderosa para los desarrolladores web, y conocer su funcionamiento y variedad puede ayudar a mejorar la eficiencia y calidad del código CSS.

En este artículo, exploraremos los diferentes tipos de selectores en CSS, desde los selectores básicos de elementos y clases, hasta los selectores más avanzados de pseudoclase y combinados.

Ya sea que seas un desarrollador principiante o experimentado, este artículo te proporcionará una guía completa y detallada sobre cómo usar los selectores en CSS para mejorar el diseño y la funcionalidad de tu sitio web.

¿Qué son los selectores en CSS?

Los selectores en CSS son patrones utilizados para seleccionar elementos HTML específicos a los que se aplicarán estilos.

Los selectores pueden ser tan simples como seleccionar un elemento por su nombre, como un encabezado h1, o más complejos, como seleccionar elementos con un cierto atributo o valor.

Tipos de selectores en CSS

Existen cuatro tipos principales de selectores en CSS, cada uno de los cuales se utiliza para seleccionar elementos HTML específicos.

A continuación, se detallan cada uno de ellos:

1. Selectores de elemento

Los selectores de elemento seleccionan elementos HTML por su nombre de etiqueta. Por ejemplo, el selector h1 seleccionará todos los encabezados de nivel 1 (<h1>) de la página.

Los selectores de elemento son los más simples y comunes en CSS.

Ejemplo de código CSS:


p {
  font-size: 16px;
  color: #333;
}

Lenguaje del código: CSS (css)

Ejemplo de código HTML:


<p>Este es un párrafo de ejemplo.</p>
<p>Este es otro párrafo de ejemplo.</p>

Lenguaje del código: HTML, XML (xml)

2. Selectores de clase

Los selectores de clase seleccionan elementos HTML que tienen un atributo class específico. Puedes utilizar cualquier nombre para la clase y aplicarla a tantos elementos como desees.

Los selectores de clase se escriben con un punto delante del nombre de la clase.

Ejemplo de código CSS:


.alerta {
  background-color: red;
  color: white;
  padding: 10px;
}

Lenguaje del código: CSS (css)

Ejemplo de código HTML:


<p class="alerta">Este es un mensaje de alerta.</p>

Lenguaje del código: HTML, XML (xml)

3. Selectores de ID

Los selectores de ID seleccionan un único elemento HTML con un atributo id específico. Cada id debe ser único en la página.

Los selectores de ID se escriben con un numeral delante del nombre del ID.

Ejemplo de código CSS:


#titulo-principal {
  font-size: 24px;
  font-weight: bold;
  color: #333;
}

Lenguaje del código: CSS (css)

Ejemplo de código HTML:


<h1 id="titulo-principal">Bienvenidos a mi sitio web</h1>

Lenguaje del código: HTML, XML (xml)

4. Selectores de atributo

Los selectores de atributo seleccionan elementos HTML que tienen un atributo específico, independientemente de su valor. Puedes utilizar los atributos comunes como href y src, y también crear atributos personalizados.

Los selectores de atributo se escriben entre corchetes.

Ejemplo de código CSS:


a[href^="https"] {
  color: blue;
}

Lenguaje del código: CSS (css)

Ejemplo de código HTML:


<a href="https://www.ejemplo.com">Enlace a un sitio seguro</a>

Lenguaje del código: HTML, XML (xml)

Cada tipo de selector en CSS tiene su propia sintaxis y se utiliza para seleccionar elementos específicos de una página web. Al aprender a utilizar cada tipo de selector, podrás aplicar estilos precisos a los elementos HTML de tu sitio web.

En la siguiente sección, exploraremos selectores avanzados en CSS que te permitirán aún más control sobre la selección de elementos.

Selectores avanzados en CSS

Los selectores avanzados en CSS permiten seleccionar elementos HTML de manera más precisa y específica.

A continuación, te presentamos algunos de los selectores avanzados más comunes:

Selectores de descendencia

Los selectores de descendencia seleccionan elementos HTML que son descendientes de otro elemento HTML específico.

Se escriben separando los selectores por un espacio.

Ejemplo de código:


div p {
  font-style: italic;
}

Lenguaje del código: CSS (css)

<div>
  <p>Este es un párrafo dentro de un div.</p>
</div>

Lenguaje del código: HTML, XML (xml)

Selectores de hijo directo

Los selectores de hijo directo seleccionan elementos HTML que son hijos directos de otro elemento HTML específico.

Se escriben separando los selectores por un signo mayor que (>).

Ejemplo de código:


ul > li {
  list-style: square;
}

Lenguaje del código: CSS (css)

<ul>
  <li>Elemento 1</li>
  <li>Elemento 2</li>
  <li>Elemento 3</li>
</ul>

Lenguaje del código: HTML, XML (xml)

Selectores adyacentes

Los selectores adyacentes seleccionan el siguiente elemento HTML adyacente a otro elemento HTML específico.

Se escriben separando los selectores por un signo más (+).

Ejemplo de código:


h1 + p {
  margin-top: 0;
}

Lenguaje del código: CSS (css)

<h1>Título de sección</h1>
<p>Este es el primer párrafo de la sección.</p>

Lenguaje del código: HTML, XML (xml)

Selectores de hermanos generales

Los selectores de hermanos generales seleccionan todos los elementos HTML que son hermanos del mismo nivel que otro elemento HTML específico.

Se escriben separando los selectores por un signo tilde (~).

Ejemplo de código:


h2 ~ p {
  font-style: italic;
}

Lenguaje del código: CSS (css)

<h2>Título de sección</h2>
<p>Este es el primer párrafo de la sección.</p>
<p>Este es el segundo párrafo de la sección.</p>

Lenguaje del código: HTML, XML (xml)

Selectores de pseudoclase

Las pseudoclases son palabras clave que se agregan a un selector para seleccionar elementos HTML que se encuentran en un estado específico, como cuando el cursor del mouse se coloca sobre un enlace o cuando se selecciona un campo de formulario.

Las pseudoclases se escriben después del selector, separadas por dos puntos (:).

Ejemplo de código:


a:hover {
  color: red;
  text-decoration: underline;
}

Lenguaje del código: CSS (css)

<a href="#">Enlace de ejemplo</a>

Lenguaje del código: HTML, XML (xml)

Selectores de atributo avanzados

Los selectores de atributo avanzados permiten seleccionar elementos HTML que tengan un atributo específico con un valor específico.

Estos selectores pueden buscar valores de atributos que contengan una cadena específica, comiencen con una cadena específica, terminen con una cadena específica o contengan una palabra específica en una lista de palabras separadas por espacios.

Ejemplo de código:


/* selecciona todos los enlaces que comiencen con "https://" */
a[href^="https://"] {
  color: blue;
}

Lenguaje del código: CSS (css)

/* selecciona todos los elementos con un atributo "class" que contenga la palabra "error" */
[class~="error"] {
  background-color: red;
}

Lenguaje del código: CSS (css)

Selectores estructurales

Los selectores estructurales permiten seleccionar elementos HTML en función de su posición en la estructura del árbol de documentos.

Los selectores estructurales pueden seleccionar el primer o último elemento de un tipo específico, seleccionar elementos que sean hijos directos de su padre, seleccionar elementos que estén en una posición específica dentro de un conjunto de elementos, y más.

Ejemplo de código:


/* selecciona el primer elemento "p" dentro de cada "div" */
div p:first-of-type {
  font-weight: bold;
}

Lenguaje del código: CSS (css)

/* selecciona el último elemento "li" dentro de cada "ul" */
ul li:last-of-type {
  font-style: italic;
}

Lenguaje del código: CSS (css)

Selectores de estado

Los selectores de estado permiten seleccionar elementos HTML que se encuentren en un estado específico.

Por ejemplo, los selectores de estado pueden seleccionar elementos que se encuentren en el estado :hover, :active, :focus o :checked.

Ejemplo de código:


/* cambia el color de fondo del botón al hacer clic */
button:active {
  background-color: green;
}

Lenguaje del código: CSS (css)

/* cambia el color de fondo del campo de entrada de texto cuando está en foco */
input:focus {
  background-color: yellow;
}

Lenguaje del código: CSS (css)

Al utilizar estos selectores, puedes personalizar aún más el diseño de tu sitio web y crear efectos interesantes.

Buenas prácticas al utilizar selectores CSS

Al utilizar selectores en tu código CSS, es importante seguir algunas buenas prácticas para mantener el código organizado, fácil de leer y fácil de mantener.

A continuación, se presentan algunas buenas prácticas para utilizar selectores en tu código CSS:

Selecciona elementos específicos

En lugar de aplicar estilos CSS a un tipo de elemento general, como p, selecciona solo los elementos específicos a los que deseas aplicar el estilo.

Esto puede ayudar a evitar que se apliquen estilos no deseados a otros elementos en tu página web.

Ejemplo de código CSS:


/* evita esto */
p {
  font-size: 16px;
}

/* usa esto en su lugar */
.clase-p {
  font-size: 16px;
}

Lenguaje del código: CSS (css)

<p class="clase-p">Este es un párrafo de ejemplo.</p>
<p>Este párrafo no se verá afectado.</p>

Lenguaje del código: HTML, XML (xml)

Evita selectores universales

Los selectores universales (*) seleccionan todos los elementos de una página web. Evita utilizar selectores universales en tu código CSS, ya que esto puede afectar el rendimiento de tu sitio web.

Ejemplo de código CSS:


/* evita esto */
* {
  margin: 0;
  padding: 0;
}

/* usa esto en su lugar */
html, body {
  margin: 0;
  padding: 0;
}

Lenguaje del código: CSS (css)

Evita selectores de ID específicos

Los selectores de ID específicos, como #mi-identificador, son muy específicos y pueden limitar la capacidad de reutilizar el estilo en otros elementos. En su lugar, utiliza selectores de clase (.) para aplicar estilos específicos.

Ejemplo de código CSS:


/* evita esto */
#mi-identificador {
  font-size: 18px;
}

/* usa esto en su lugar */
.clase-identificador {
  font-size: 18px;
}

Lenguaje del código: CSS (css)

<div class="clase-identificador">Este es un elemento con una clase.</div>

Lenguaje del código: HTML, XML (xml)

Utiliza selectores de cascada

Los selectores de cascada te permiten aplicar estilos a elementos específicos en función de su relación con otros elementos. Utiliza selectores de cascada para aplicar estilos a elementos específicos de manera más precisa.

Ejemplo de código CSS:


nav ul li a {
  color: blue;
}

nav ul li a:hover {
  color: red;
}

Lenguaje del código: CSS (css)

<nav>
  <ul>
    <li><a href="#">Inicio</a></li>
    <li><a href="#">Acerca de</a></li>
    <li><a href="#">Contacto</a></li>
  </ul>
</nav>

Lenguaje del código: HTML, XML (xml)

Agrupa selectores

Agrupa selectores similares para evitar la repetición innecesaria de estilos en tu código CSS.

Ejemplo de código CSS:


h1,
h2,
h3 {
  font-family: Arial, sans-serif;
  color: #333;
}

Lenguaje del código: CSS (css)

<h1>Título principal</h1>
<h2>Título secundario</h2>
<h3>Título terciario</h3>

Lenguaje del código: HTML, XML (xml)

Utiliza selectores avanzados con moderación

Aunque los selectores avanzados pueden ser útiles para seleccionar elementos específicos de manera más precisa, es importante no abusar de ellos. Demasiados selectores avanzados pueden hacer que el código sea más difícil de leer y mantener.

Ejemplo de código CSS:


/* evita esto */
header > nav ul li a:hover {
  color: red;
}

/* usa esto en su lugar */
nav a:hover {
  color: red;
}
Lenguaje del código: CSS (css)

<header>
  <nav>
    <ul>
      <li><a href="#">Inicio</a></li>
      <li><a href="#">Acerca de</a></li>
      <li><a href="#">Contacto</a></li>
    </ul>
  </nav>
</header>

Lenguaje del código: HTML, XML (xml)

Al utilizar selectores en tu código CSS, es importante seguir algunas buenas prácticas para mantener el código organizado y fácil de leer.

Al seleccionar elementos específicos, evitar selectores universales y de ID específicos, utilizar selectores de cascada, agrupar selectores y utilizar selectores avanzados con moderación, puedes mejorar la eficiencia y calidad de tu código CSS.

Referencias

Aquí te presento algunas referencias útiles sobre los selectores en CSS3:

  1. La especificación oficial de selectores de CSS3 de la W3C.
  2. La guía de selectores en CSS3 de Mozilla Developer Network.
  3. La documentación de selectores en CSS3 de CSS Tricks.

Estas referencias ofrecen una guía completa sobre los diferentes tipos de selectores en CSS3, cómo funcionan y cómo utilizarlos en tu código CSS.

También proporcionan ejemplos útiles y explicaciones detalladas para ayudarte a mejorar la eficiencia y calidad de tu código CSS.