Questão nº 34
Questão de Tecnologia da Informação · FGV CVM 2024 (nº 34)
Ao configurar o design de uma página, Roberto usou o código CSS a seguir, em uma tag style, fazendo com que um menu de navegação lateral fique ao lado da área de conteúdo.
```css
aside {float: left; width: 30%}
main {float: left; width: 70%}
```
O resultado em tablets e desktops foi bom, mas o acesso pelo celular apresentou alguns problemas de usabilidade, sendo mais adequado que o menu ficasse acima do conteúdo.
Para utilizar o design indicado em telas menores, garantindo a responsividade da página, Roberto acrescentou ao código CSS:
- A@media screen and (max-width: 600px) { aside, main {width: 100%} } (alternativa correta)
- B@media handheld { aside, main {width: 50%} }
- C@media screen and (max-width: 600px) { aside, main {position: absolute} }
- D@media screen and (min-width: 768px) { aside, main {width: 100%} }
- E@media (max-width: 480px) { aside, main {width: 50%} }
Resposta comentada
Gabarito Alternativa A
Media queries são regras CSS especiais que permitem aplicar estilos diferentes a uma página web com base nas características do dispositivo do usuário, como a largura da tela. Isso é essencial para criar um design responsivo, onde o layout se adapta para ficar bom em celulares, tablets e desktops.
- (A) Correta: Esta alternativa usa uma media query para aplicar estilos específicos quando a largura da tela for de no máximo 600 pixels (tamanho comum para celulares). Ao definir
width: 100%paraaside(menu) emain(conteúdo), ambos ocuparão a largura total disponível. Como eles não têm mais espaço para flutuar lado a lado, eles se empilharão verticalmente, colocando o menu acima do conteúdo, que é o comportamento desejado para telas menores. - (B) Incorreta: O tipo de mídia
handheldé obsoleto e não é mais suportado de forma confiável pelos navegadores modernos. Além disso,width: 50%para ambos não faria com que eles se empilhassem ocupando a largura total, podendo ainda tentar flutuar lado a lado se houver espaço. - (C) Incorreta: A propriedade
position: absoluteremove os elementos do fluxo normal do documento. Aplicarposition: absolutea ambosasideemainsem definir posições (top,left, etc.) faria com que eles se sobrepusessem no mesmo local, em vez de se empilharem. Esta é a armadilha da banca:position: absoluteé uma ferramenta poderosa, mas mal utilizada aqui, pois não resolve o problema de empilhamento de forma direta e robusta para este cenário. - (D) Incorreta: A condição
min-width: 768pxaplica os estilos para telas maiores que 768 pixels (tablets em paisagem ou desktops). O problema a ser resolvido é em telas menores (celulares), então esta media query aplicaria a mudança de layout no lugar errado, quebrando o design para telas maiores. - (E) Incorreta: Embora
max-width: 480pxseja um breakpoint válido para celulares, definirwidth: 50%para ambosasideemainnão garante que eles se empilhem ocupando a largura total. Eles ainda poderiam tentar flutuar lado a lado se houver espaço, ou se empilhariam mas ocupando apenas metade da largura, o que não é o objetivo de "menu acima do conteúdo" com largura total.
Fonte: FGV CVM 2024 Analista CVM - TI Sistemas e Desenvolvimento (Perfil 8) (Caderno Tipo 1). Reproduzida para fins de estudo.