Pseudoelementos de resaltado

Pseudoelementos destacados o de selección


Existe una serie de pseudoelementos orientados a la selección o resaltado de texto en un documento HTML mostrado a través de un navegador. Veamos que pseudoelementos tenemos a nuestra disposición:

Pseudoelemento Descripción
::selection Aplica estilos al fragmento de texto seleccionado por el usuario.
::target-text Aplica estilos al fragmento de texto enlazado tras el ancla de la URL.
::spelling-error Aplica estilos al fragmento de texto resaltado por un error ortográfico.
::grammar-error Aplica estilos al fragmento de texto resaltado por un error gramatical.

El pseudoelemento ::selection

Cuando seleccionamos un fragmento de texto, el navegador suele aplicar un color de fondo que depende del sistema operativo, del tema, o similar. Al igual que ocurre con la propiedad accent-color, es posible que queramos aprovechar esto para definir un color que tengan sentido con los colores corporativos de la marca o web, por lo que podríamos cambiarlo haciendo uso del pseudoelemento ::selection:

::selection {
  background: indigo;
  color: white;
}
<p>Selecciona este texto para ver el color.</p>

El pseudoelemento ::target-text

En algunos casos, al crear un enlace a una página, tras el ancla de la URL definida con el carácter #, se puede añadir el fragmento de texto :~:text= seguido del texto, palabra o frase a buscar en la propia página. Al hacer esto, el navegador resaltará esa parte para que sea más sencillo encontrarla.

Esta página suele estar destacada con color de fondo amarillo sobre letras negras, pero podemos personalizarlo a través del pseudoelemento ::target-text:

::target-text {
  background: lime;
  color: black;
}

Ahora, en una URL terminada en #:~:text=ManzDev, todos los textos ManzDev aparecerían resaltados en el color seleccionado por ::target-text.

El pseudoelemento ::spelling-error

El pseudoelemento ::spelling-error nos permite modificar los estilos que se aplican a como se muestra un error ortográfico en el navegador, que normalmente se visualiza con un subrayado ondulado rojo en la palabra o texto afectado.

textarea {
  min-width: 400px;
  min-height: 100px;
  font-size: 1.25rem;
}

::spelling-error {
  background: darkred;
  color: white;
}
<p>
  Pulsa en el interior del campo de texto
  para que revise la ortografía:
</p>

<textarea spellcheck="true">Vamos a cometer un herror hortográfico para ver el resaltado de sintaxis.</textarea>

El pseudoelemento ::grammar-error

Por su parte, el pseudoelemento ::grammar-error es exactamente igual al anterior, sólo que se encarga de señalar los errores gramaticales del texto, y no los ortográficos.

Nuevamente, hagamos un ejemplo, añadiendo esta pseudoclase sobre el ejemplo anterior:

textarea {
  min-width: 400px;
  min-height: 100px;
  font-size: 1.25rem;
}

::spelling-error {
  background: darkred;
  color: white;
}

::grammar-error {
  background: orangered;
  color: white;
}
<p>
  Pulsa en el interior del campo de texto
  para que revise la ortografía:
</p>

<textarea spellcheck="true">Vamos a cometer un herror hortográfico para ver el resaltado de sintaxis, y además, también vamos a cometer 1 errores gramatical.</textarea>

¿Quién soy yo?

Soy Manz, vivo en Tenerife (España) y soy streamer partner en Twitch y profesor. Me apasiona el universo de la programación web, el diseño y desarrollo web y la tecnología en general. Aunque soy full-stack, mi pasión es el front-end, la terminal y crear cosas divertidas y locas.

Puedes encontrar más sobre mi en Manz.dev