Pseudoclases

Frontend SELF ES
Nivel 13 , Lección 1
Disponible

7.1 Pseudoclases de estado

Las pseudoclases en CSS son palabras clave especiales que se añaden a los selectores para indicar el estado de un elemento o su posición en la estructura del documento. Permiten aplicar estilos a elementos en ciertos estados o situaciones que no se pueden especificar con selectores normales.

Pseudoclases principales:

  • Pseudoclases de estado
  • Pseudoclases de estado estructural
  • Pseudoclases de forma
  • Pseudoclases de navegación

Sintaxis:

    
      selector:pseudoclase {
        propiedad: valor;
        propiedad: valor;
      }
    
  

Pseudoclases de estado

Estas pseudoclases se utilizan para dar estilo a elementos dependiendo de su estado actual, por ejemplo, al pasar el cursor o un elemento activo:

  • :hover — se aplica cuando el usuario pasa el cursor sobre un elemento
  • :active — se aplica cuando un elemento es activado (normalmente al hacer clic)
  • :focus — se aplica cuando un elemento está enfocado (por ejemplo, al usar el teclado)
  • :visited — se aplica a los enlaces visitados
  • :link — se aplica a los enlaces no visitados

7.2 Pseudoclase hover

La pseudoclase :hover se aplica a un elemento cuando el usuario pasa el cursor del ratón sobre él. Es comúnmente usada para cambiar el aspecto de enlaces y botones al pasar el cursor.

Sintaxis:

    
      selector:hover {
        propiedad: valor;
        propiedad: valor;
      }
    
  

Ejemplo:

Este selector cambia el color del texto y subraya los enlaces al pasar el cursor del ratón.

HTML
    
      <a href="#">Enlace-placeholder</a>
    
  
CSS
    
      a:hover {
        color: red;
        text-decoration: underline;
      }
    
  

Aplicación:

  • Mejora la interacción con el usuario (UI) mediante retroalimentación visual
  • Se utiliza para botones, enlaces y otros elementos interactivos

7.3 Pseudoclase focus

La pseudoclase :focus se aplica a un elemento cuando recibe el foco. Por ejemplo, al hacer clic en él o al navegar a él con la tecla tabulador. Se usa comúnmente para inputs y otros elementos de formulario.

Sintaxis:

    
      selector:focus {
        propiedad: valor;
        propiedad: valor;
      }
    
  

Ejemplo:

Este selector cambia el color del borde del input y elimina el contorno al recibir el foco.

HTML
    
      <input type="text" name="text" id="text">
    
  
CSS
    
      input:focus {
        border-color: blue;
        outline: none;
      }
    
  

Aplicación:

  • Mejora la accesibilidad (accessibility) de las páginas web
  • Hace que los elementos interactivos sean más visibles cuando están enfocados

7.4 Pseudoclase nth-child

La pseudoclase :nth-child se aplica a elementos basándose en su posición entre los elementos hijos del padre. Acepta un argumento que puede ser un número, una palabra clave o una expresión.

Sintaxis:

    
      selector:nth-child(n) {
        propiedad: valor;
        propiedad: valor;
      }
    
  

Ejemplo:

Este selector permite aplicar estilos a elementos basándose en su posición entre sus hermanos.

HTML
    
      <ul>
        <li>Elemento 1</li>
        <li>Elemento 2</li>
        <li>Elemento 3</li>
        <li>Elemento 4</li>
        <li>Elemento 5</li>
        <li>Elemento 6</li>
        <li>Elemento 7</li>
      </ul>
    
  
CSS
    
      /* Aplica estilos a todos los elementos hijos impares */
      li:nth-child(odd) {
          background-color: lightgray;
      }

      /* Aplica estilos a todos los elementos hijos pares */
      li:nth-child(even) {
          background-color: lightblue;
      }

      /* Aplica estilos al segundo elemento hijo */
      li:nth-child(2) {
          color: red;
      }
    
  

Aplicación:

  • Estiliza filas de tablas, elementos de listas y otras estructuras repetitivas
  • Permite crear diseños y estilos complejos sin añadir clases adicionales

7.5 Ejemplos de uso de pseudoclases

HTML
    
      <button type="button">Botón</button>
    
  
CSS
    
      button:hover, button:focus {
        background-color: darkblue;
        color: white;
      }
    
  

Estilización de filas pares de una tabla:

HTML
    
      <table>
        <tr>
          <th>Nombre</th>
          <th>Cantidad</th>
          <th>Precio</th>
        </tr>
        <tr>
          <td>Producto 1</td>
          <td>5</td>
          <td>10 €</td>
        </tr>
        <tr>
          <td>Producto 2</td>
          <td>3</td>
          <td>15 €</td>
        </tr>
        <tr>
          <td>Producto 3</td>
          <td>8</td>
          <td>7 €</td>
        </tr>
      </table>
    
  
CSS
    
      tr:nth-child(even) {
        background-color: #f2f2f2;
      }
    
  

Exclusión de ciertos elementos del estilo general:

HTML
    
      <ul>
        <li class="list-item">Elemento 1</li>
        <li class="list-item">Elemento 2</li>
        <li class="list-item">Elemento 3</li>
        <li class="list-item">Elemento 4</li>
        <li class="list-item">Elemento 5</li>
        <li class="list-item">Elemento 6</li>
        <li class="list-item">Elemento 7</li>
      </ul>
    
  
CSS
    
      .list-item:not(:last-child) {
        border-bottom: 1px solid #ddd;
      }
    
  
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION