Los pseudo-elementos

publicado en la categoría CSS
Los pseudo-elementos seleccionan alguna parte de un elemento y su sintaxis es similar a las pseudo-clases aunque a veces, en lugar de usar un carácter dos puntos se utilizan dos.

Los pseudo-elementos seleccionan alguna parte de un elemento y su sintaxis es similar a las pseudo-clases aunque a veces, en lugar de usar un carácter dos puntos se utilizan dos.

Los más sencillos de comprender son ::first-letter y ::first-line que permiten identificar la primera letra de un texto o la primera línea y establecer propiedades particulares para cada una de ellas.

El pseudo-elemento ::first-line puede usarse en cualquier elemento de bloque como p>, h1, etc o que posean la propiedad display con valores como block, inline-block, table-cell o table-caption. Hay que tener en cuenta que la primera línea no se refiere a lo que se separa por saltos de línea sino a la primera línea que muestra el navegador así que en estos ejemplos, la regla de estilo tiene resultados distintos aún cuando el texto sea el mismo porque lo que varía es el ancho

El pseudo-elemento ::first-letter permite establecer las propiedades de la primera letra de un párrafo. Es algo simple pero, debe tenerse muy en cuenta que ese párrafo debe comenzar con un texto y no funcionará si es precedido por una imagen, un salto de línea o cualquier otro tipo de contenido.

En ambos casos, no todas las propiedades tienen efecto, sólo las que afectan a las fuentes, al fondo, al color, algunas otras como text-decoration, text-shadow, text-transform, word-spacing, letter-spacing, line-height y vertical-align. El pseudo-elemento ::first-letter admite algunas más como margin, padding, border, box-shadow y float.

Como en cualquier otra regla, podemos combinar ambas cosas y, en ese caso, hay que saber que quien mande será ::first-letter, sin importar el orden en que lo hayamos escrito.

Otros dos pseudo-elementos son ::after y ::before que merecen una explicación más detallada y ... debería decir que no hay más porque, aunque hay otros, ninguno de ellos está estandarizado y han sufrido las idas y vueltas de quienes definen las reglas oficiales del CSS3; sin embargo, algunos de ellos pueden ser utilizados sin mayores inconvenientes siempre y cuando se utilicen los prefijos correspondientes para cada navegador.

El pseudo-elemento ::selection nos permite establecer propiedades personales cuando seleccionamos algún texto aunque sólo admite algunas propiedades como background-color, color, cursor, outline, text-decoration, text-emphasis-color y text-shadow.

.demo::selection {
	background-color: darkred;
	color: yellow;
}
Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.

El pseudo-elemento ::placeholder nos permite establecer algunas de las características gráficas del atributo placeholder. Lamentablemente, por ahora, las diferencias entre los navegadores también son varias y no todos admiten personalizar las mismas propiedades; además, se debe tener en cuenta que estas reglas de estilo hay que aplicarlas de modo individual y no pueden ser agrupadas:

.demo input::-moz-placeholder {
	background-color: lightskyblue;
	color: darkblue;
	font-style: italic;
	letter-spacing: .2em;
}
.demo input::-webkit-input-placeholder {
	background-color: lightskyblue;
	color: darkblue;
	font-style: italic;
	letter-spacing: .2em;
}
.demo input::-ms-input-placeholder {
	background-color: lightskyblue;
	color: darkblue;
	font-style: italic;
	letter-spacing: .2em;
}

Para confundir un poco más las cosas, hay una psudo-clase llamada :placeholder-shown es experimental pero funciona en Firefox y Chrome y hace exactamente lo mismo aunque está limitada a las etiquetas input de tipo text.

El pseudo-elemento ::backdrop se puede usar para establecer el fondo cuando un elemento se muestra en modo pantalla completa pero por ahora no es aconsejable utilizarlo.

Hay muchos más pseudo-elementos que aún están en modo experimental pero que ningún navegador acepta y muchos otros propuestos por las distintas empresas pero vaya uno a saber cuales quedarán y cuales pasarán al olvido.