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

[Dúvida] Ordem do "@media" no style.css

Uma dúvida, enquanto eu escrevia o código da aula eu coloquei o "@media" no topo do projeto "style.css", apenas por uma questão de gosto pessoal na hora de organizar as coisas.

Quando eu puxei a class ".apresentacao" e setei para "flex-direction: column-reverse;" o projeto ficou como deveria, normal... Porém, quando eu setei as class "cabecalho" e "cabecalhomenu" com a correção do padding e justify-content meu arquivo não recebia as novas alterações escritas eu não entendia por quê.

Depois de muito pensar resolvi apenas por teste jogar o "@media" para o fim do style.css (lá na última linha, 161) e a partir disso tudo passou a funcionar como devia.

A dúvida é: "A ordem onde você introduz seu "@media" influencia no funcionamento da style.css? Devemos sempre usa-la nas últimas linhas de um projeto?"

1 resposta
solução!

Oi Luan, tudo bem?

Agradeço por trazer sua dúvida sobre a ordem do "@media" no arquivo "style.css". É muito importante entendermos como funciona essa questão para garantir o correto funcionamento de nossos projetos responsivos.

O "@media" é uma regra do CSS que nos permite aplicar estilos específicos para determinadas condições, como por exemplo, largura de tela, orientação do dispositivo, entre outros. É muito útil para criar layouts adaptáveis e garantir uma boa experiência em diferentes dispositivos.

Quanto à sua pergunta, a ordem em que você coloca as regras "@media" no seu arquivo "style.css" pode sim influenciar o funcionamento dos estilos. Geralmente, as regras "@media" são colocadas no final do arquivo, após todas as outras regras CSS. Isso acontece porque as regras definidas dentro do "@media" irão sobrescrever as regras anteriores, se houver algum conflito.

Vamos analisar o seu caso específico. Você mencionou que ao definir as classes ".cabecalho" e ".cabecalhomenu" com as correções de padding e justify-content, as alterações não eram aplicadas. Após mover o "@media" para o final do arquivo, tudo começou a funcionar corretamente.

Essa situação ocorreu porque as regras que você aplicou dentro do "@media" estavam sendo sobrescritas por regras anteriores. O CSS segue uma ordem de cascata, onde as regras mais específicas têm maior peso. Se houver conflito entre duas regras, a última regra aplicada prevalece.

No seu caso, é possível que alguma outra regra definida anteriormente estivesse afetando as classes ".cabecalho" e ".cabecalhomenu", sobrescrevendo as alterações que você tentou fazer. Ao mover o "@media" para o final, as regras definidas dentro dele passaram a ter prioridade sobre as regras anteriores, permitindo que as alterações fossem aplicadas corretamente.

Para evitar esse tipo de problema, é recomendado seguir a prática comum de colocar as regras "@media" no final do arquivo "style.css". Dessa forma, você garante que todas as regras anteriores já tenham sido definidas e as regras específicas para cada condição sejam aplicadas corretamente.

Aqui está um exemplo simplificado para ilustrar a ordem correta:

/* Regras gerais */

.classe-geral {
  /* Estilos para todas as telas */
}

/* ... outras regras ... */

/* Regras específicas para dispositivos menores */
@media (max-width: 768px) {
  .classe-especifica {
    /* Estilos para telas menores que 768px */
  }
}

Observe que as regras gerais são definidas primeiro e as regras específicas para telas menores estão dentro do "@media". Dessa forma, garantimos que as regras mais específicas sejam aplicadas corretamente.

É importante ressaltar que cada caso pode ter suas particularidades.

Um abraço e bons estudos.