Oi, Yuri, tudo bem?
Os pseudo-elements são usados para estilizar partes especificadas de um elemento.
Por exemplo:
- Estilize a primeira letra ou linha de um elemento
- Inserir conteúdo antes ou depois do conteúdo de um elemento
O hover por exemplo, você pode usar em links para que quando for passada a mão em cima do link, ele mude de cor. Já o visited é quando o usário já esteve naquele link e ele pode mudar de cor, por exemplo. O required se relaciona com tag input que tem esse atributo espeficifo e você também pode estilizar de diferentes formas.
Para saber mais, a documentação: https://developer.mozilla.org/pt-BR/docs/Web/CSS/Pseudo-classes
Espero ter te ajudado!