Gostaria de uma ajudinha sobre uma situação com CSS.
Quando criando minhas regras para o CSS de uma página, eu só sobrescrevo alguma propriedade com o @media, certo? Fiquei um pouco confuso com a situação abaixo:
O ponto é que a página não obedecia o @media, mantinha o height base, 400px, mesmo em telas menores que 480px. Erra regra não deveria ser aplicada para telas com largura máxima de 480px, conforme a regra criada que observamos na imagem? Precisei criar outra regra para telas maiores, com largura mínima de 481px, o que eu achei que seria desnecessário.
Qual peculiaridade dessa regra que eu não estou notando? Alguém consegue me dar alguma luz nesse assunto?
Obrigado!
Edit: só pra esclarecer o primeiro print: o height só foi comentado depois que eu criei uma regra no @media, caso alguém ache que estava com problema por este motivo.
Acho que o que pode estar acontecendo é o uso inválido nas regras do CSS, no código das imagens você adicionou o elemento P dentro de uma ID e depois as tags IMG e P dentro de outra ID.
Isso não é possível no CSS, o correto seria:
Sempre que for modificar algum elemento de uma ID ou Class é necessário colocar o nome da ID ou Class e em seguida o nome do seletor que deseja atingir como no exemplo da imagem acima. Já o segundo código ficaria da seguinte maneira:
Veja no devTools do chrome ou no inspector do firefox se está pegando a regra de height: 400px com mais de 480px de width. Se está pegando a regra mas não se mantém em 400px de altura quer dizer que o problema não é de media query nem da especificidade do seletor mas de alguma outra propriedade do css.
Verdade. Eu deveria já ter colocado o link do repo. Link aqui.
Atualmente, a página já está rodando normalmente, como eu mencionei, mas porque eu fiz uma @media específica pra ela, como também mencionado. Eu esperava que isso fosse sobrescrevido, criando uma apenas para a exceção. Link da página ativa aqui.
Eu não tenho certeza se entendi o problema, mas ao usar @media você ainda precisa lembrar da cascata. Para que as regras funcionem direitinho sobrescrevendo as anteriores é necessário que ela seja mais específica para ter peso maior (você pode colocar o nome da tag antes da id no seletor, por exemplo).
Verdade, pulei a parte da regra especifica. Eu tirei a media query de 481px, e adicionei a propriedade height no #about de fora das media queries e pelo que estou vendo tem a ver com a especificidade dos seletores mesmo. Fora da media query o #about esta dentro do .container e dentro da media query esta so o #about. Então as propriedades fora de media query estão com mais força que dentro da mq, então o height: 400px de fora da mq está sobrescrevendo o height: fit-content de dentro.
Adicionei a classe .container no seletor da media query e assim ficando com a mesma especificidade que o seletor fora da media query, mas por conta de que o seletor está dentro da media query então tem mais força, por isso…
as propriedades que antes estavam desativadas dentro da media query agora passam a estar ativas, e as que estavam ativas fora passam a estar inativas, ou seja sobrescritas pelas que estão dentro da mq.
@edubarros101 , eu não entendi muito bem sua dúvida, mas vou tentar ajudar.
Você pode usar os media queries para alterar qualquer propriedade em determinada resolução.
Usando “min-width: 481px” as alterações pegam em telas MAIORES que 481px.
Usando “max-width: 480px” as alterações vão pegar em telas MENORES que 480px.
Então vamos supor que seu #about tem no css base “height: 300px” mas na versão mobile você quer diminuir ele, então você usaria: