2
respostas

TEXT-DECORATION

Considere-se o trecho do código a seguir e seu resultado em anexo.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

           <a href="#" class="container__link">

                <img src="ASSETS/imagens/Compras.svg" alt="Carrinho de compras" class="container__imagem">

                <p class="container__texto">Minha sacola</p>

            </a>

            <a href="#" class="container__link">

                <img src="ASSETS/imagens/Usuario.svg" alt="Meu perfil" class="container__imagem">

                <p class="container__texto">Meu Perfil</p>

            </a>

Para eliminar (com sucesso) o sublinhado do texto, a instrutora optou por usar o "text-decoration" na div-pai, assim:

 .container__link{
        display: flex;
        align-items: center; /* Alinha em relação ao eixo y, só é possível com flexbox */
        color: var(--preto);
        text-decoration: none;
    }

A minha pergunta é, pq não dá certo fazer no filho, como eu imaginei? Ou seja:

.container__texto{

    text-decoration: none;
    
}
2 respostas

Olá Professor Miranda! Como vai?

A questão aqui é que o sublinhado em links (<a>) é uma propriedade do próprio elemento de âncora. Quando você aplica o text-decoration: none; diretamente no <a>, está removendo o sublinhado de todo o conteúdo do link, incluindo qualquer texto ou imagem dentro dele.

Se você aplicar text-decoration: none; apenas no elemento filho, como <p class="container__texto">, ele não removerá o sublinhado do link, porque o sublinhado é uma propriedade do elemento <a>, e não do <p>. O <p> herda o estilo do <a>, mas não pode sobrepor essa propriedade específica, pois o sublinhado é aplicado ao link inteiro.

Portanto, a maneira correta de remover o sublinhado é aplicando text-decoration: none; diretamente no elemento <a>.

Espero ter ajudado. Conte sempre com o apoio do fórum :)

Um abraço e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Obrigado Rapha