1
resposta

2 classe dentro de cada link , como elas se conectam?

Na sequência do vídeo o professor fez o seguinte código que está em todas as classes dos links:

.menu-lateral__link::before {
    content: "\e900";

    width: 24px;
    height: 24px;
    font-size: 24px;

    position: absolute;
    left: 24px;
}

Vi que ele deixou o content: "\e900"; que iria valer para todos os links e depois

fez uma classe especificadamente para cada link da seguinte forma:

.menu-lateral__link--inicio::before {
    content: "\e902";
}

Perguntas:

1) Nos links ele colocou 2 classes, na classe genérica .menu-lateral__link::before ele colocou dentro do content: "\e900"; e nas classes especificas ele trouxe os contents específicos para cada link, por exemplo, content: "\e902"; para o .menu-lateral__link--inicio::before. Os contentes específicos content: "\e902"; sobrescreveram os contentes genéricos content: "\e900";?

2) Como que atributos trazidos pela classe .menu-lateral__link::before conseguiram ser aplicados no content: "\e902"; trazido por outra classe: .menu-lateral__link--inicio::before?

3) Tirei esse o content: "\e900"; da classe genérica .menu-lateral__link::before e as configurações funcionaram normalmente. Mas eu pergunto, tem alguma vantagem ou necessidade deixar o content: "\e900"; na classe genérica .menu-lateral__link::before ou ele quem esqueceu lá??

1 resposta

Olá, tudo bem?

1) Sim, aconteceu a sobrescrição. Aconteceu a sobrescrita por conta do "efeito cascata" do CSS, então a última classe escrita tem mais peso que a primeira quando estiverem no mesmo nível da TAG (mesmo nível: <aclass="menu__lateral__link menu__lateral__link--inicio">).

2) Essa é a ideia do efeito cascata, os atributos são águas e as classes e TAGs são pedras que vão modificando/desviando os atributos, nesse caso o .menu-lateral__link--inicio::before só desviou a água do content da pedra acima .menu-lateral__link::before, o width, heigth continuam caindo e vai aparecer no fim.

3) pode ser uma espécie de back-up, alguma coisa, não sei. Vai funcionar do mesmo jeito, eu deixei a minha vazia. content="";