Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

A lista de link do footer não aceita o text-decoration

Boa tarde! Revisei o código e não achei a razão do text-decoration não funcionar. Quem observar alguma coisa que possa me ajudar, ficarei muito agradecido.

<footer class="rodape">
            <img src="img/Logo.png" alt="Alura+" class="rodape__logo">
            <ul class="rodape__lista">
                <li class="lista__link">
                    <a href="#">Idioma</a>
                </li>
                <li class="lista__link">
                    <a href="#">Dispositivos compatíveis</a>
                </li>
                <li class="lista__link">
                    <a href="#">Contrato de assinatura</a>
                </li>
                <li class="lista__link">
                    <a href="#">Politica de privacidade</a>
                </li>
                <li class="lista__link">
                    <a href="#">Proteção de dados no Brasil</a>
                </li>
                <li class="lista__link">
                    <a href="#">Anuncios personalizados</a>
                </li>
                <li class="lista__link">
                    <a href="#">Ajuda</a>
                </li>
            </ul>
            <p class="rodape__texto">® 2021 Alura, Alura+ e Alura Língua. Todos os direitos reservados. Serviço de assinatura paga. Conteúdo sujeito a disponibilidade.</p>
            <p class="rodape__texto">Alura+ é um serviço pago, baseado em assinatura e sujeito a termos e condições. O serviço Alura+ é comercializado por Aovs Sistemas de Informática S.A., Rua Vergueiro, 3185 - Liberdade, São Paulo - SP, 04101-300, Brasil e CNPJ 05.555.382/0001-33</p>
        </footer>
.rodape__lista {
    display: flex;
    justify-content: center;
    list-style-type: none;
    margin-top: 1em;
}

.lista__link {
    text-decoration: none;
    color: var(--branco-principal);
    margin-left: 1em;
    font-size: 16px;
}

.rodape__texto {
    margin: 1em 0;
    color: var(--cinza-secundario);
    font-size: 14px;
}

.rodape {
    text-align: center;
    margin: 5em 3em;
}
4 respostas
solução!

Oi, Takashi! Tudo bem?

Para funcionar o text-decoration: none você precisa aplicar diretamente na ancora, ou seja, o elemento <a>. Uma ideia pode ser colocar o seletor como .lista__link a, assim ele vai até o elemento com classe lista__link e entra nos elementos <a> dentro dele.

Bons estudos!

Obrigado pela rápida resposta professora! Voltei aqui justamente pra comentar que eu fiz basicamente o que vc falou, mas sem aplicar a ancoragem.

Se não estou enganado, não era para o elemento filho herdar as instruções do elemento pai que está com a class?

Oi, novamente! Esse eu demorei pq tive que pesquisar também kkkk

Esse é um caso bem específico e curioso: Caso você aplique uma decoração de texto no <li> ele irá afetar os itens dentro dele, mas você não consegue remover as decorações que já são dos elementos.


Exemplo prático

Vou simular esse caso da aula mas com um <p> no lugar da ancora (<a>). O html ficaria assim:

<ul>
  <li>
    <p>Testando decorações</p>
  </li>
</ul>

Caso eu coloque uma decoração de texto específica pra esse <p>, eu não conseguirei remove-la com o pai dela, o <li>.

p {
  text-decoration: underline;
}

li {
  text-decoration: none;
}

Frase testando decorações com uma linha embaixo

Já se eu não definir nada pra esse elemento de dentro, no caso o <p>, eu posso colocar essa linha diretamente através do li.

li {
 text-decoration: underline;
}

Frase testando decorações com uma linha embaixo


Conclusão

Fazendo esses testes, pude concluir que o elemento pai não consegue alterar a propriedade de um filho que já foi definida anteriormente. Por padrão o <a> já vem com text-decoration: underline, portanto não foi possível sobreescrever pelo pai.

Pra entender melhor é possível testar em outros casos também. Eu fiz esse aqui, colocando um parágrafo dentro de uma div:

<div>
  <p>Testeeee</p>
</div>

E defini a cor da fonte do <p> como vermelha, e a cor da fonte da div como azul.

p {
 color: red;
}

div {
  color: blue;
}

Mesmo que o pai defina que a cor da fonte é azul, como já foi definido que a cor do filho (o p) é vermelha, o vermelho que se manteve. Mas se eu botasse uma outra tag como filha, como um <h1>, ele seria azul, por não ter nenhuma declaração de cor pro h1.


Espero que eu tenha ajudado a esclarecer melhor o que acontece com essa parte. Qualquer coisa pode me perguntar e bons estudos!

Achei ótima a explicação. Já empaquei algumas vezes por causa disso e tive que resolver com gambiarras, mas entender essa questão da herança, já esclarece muito e agiliza nossa vida.

Novamente, muito obrigado!!