Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

:first-letter não funciona

Olá,

Eu tentei usar o :first-letter do CSS junto com o :before e :after, mas não funcionou. Eu criei um código simples para exemplificar a minha dúvida e vou colocar ele abaixo:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>Isso é um título</title>

        <style>
            h1:first-letter {
                font-weight: bold;
                color: #BBBBBB;
            }

            h1:before {
                content: "{ "
            }

            h1:after {
                content: " }"
            }
        </style>
    </head>

    <body>
        <footer>
            <h1>Título principal</h1>
            <ul>
                <li>Opção 1</li>
                <li>Opção 2</li>
                <li>Opçao 3</li>
            </ul>
        </footer>

        <main>
            <h2>Título secundário</h2>
            <p>
                Parágrafo 1
            </p>
            <p>
                Parágrafo 2
            </p>
        </main>

        <footer>
            <p>&copy;Gilberto.</p>
        </footer>
    </body>
</html>

Eu estava esperando que a tag h1 ficasse tivesse envolto em chaves e a primeira leta do título ficasse cinza e em negrito. Onde eu estou errando? Não é permitido combinar :first-letter, :before e :after?

1 resposta
solução!

Fala ai Giberto, tudo bem? Vamos lá:

Eu estava esperando que a tag h1 ficasse tivesse envolto em chaves e a primeira leta do título ficasse cinza e em negrito. Onde eu estou errando? Não é permitido combinar :first-letter, :before e :after?

No seu código a regra do first-letter vai ser aplicada ao before, ou seja, vai ser aplicada na primeira chave: content: "{ ".

Isso porque quando seu elemento tem um before o first-letter passa a ser ele e não mais o conteúdo do elemento em si.

Espero ter ajudado.