@supports
@supports
permite que você teste se o navegador do usuário suporta determinadas propriedades ou valores CSS, aplicando estilos apenas quando o teste é verdadeiro. Isso é especialmente útil para funcionalidades CSS modernas que ainda não são universalmente suportadas.
@supports
:.box {
width: 200px;
height: 200px;
background-color: lightgrey;
}
@supports (display: grid) {
.container {
display: grid;
grid-template-columns: repeat(3, 1fr);
}
}
@media
Enquanto @media
é frequentemente usado para adaptar estilos com base na largura da tela, ele também pode ser empregado para responder a uma ampla gama de condições, incluindo orientação, resolução e até preferências do usuário, como esquemas de cores.
@media
para Orientação e Resolução:/* Estilos para telas em modo paisagem com resolução alta */
@media (orientation: landscape) and (min-resolution: 2dppx) {
.high-res-img {
background-image: url('image-hd.jpg');
}
}
/* Estilos para preferência de esquema de cores escuro */
@media (prefers-color-scheme: dark) {
body {
background-color: #333;
color: #fff;
}
}
@supports
e @media
Criando um Card de Perfil Responsivo:
Vamos criar um card de perfil que se adapta a diferentes condições de visualização, demonstrando o uso de @supports
e @media
.
<div class="perfil-card">
<img src="perfil.jpg" alt="Foto de Perfil">
<h2>Nome do Usuário</h2>
<p>Desenvolvedor Web</p>
</div>
.perfil-card {
background-color: lightgrey;
padding: 20px;
max-width: 300px;
}
@supports (display: grid) {
.perfil-card {
display: grid;
gap: 10px;
}
}
@media (max-width: 600px) {
.perfil-card {
max-width: 100%;
padding: 10px;
}
}
Este exemplo utiliza @supports
para aplicar um layout grid
se suportado, proporcionando um espaçamento consistente entre os elementos do card. Com @media
, ajustamos o tamanho e o padding do card em dispositivos com tela menor que 600px, garantindo uma boa visualização em dispositivos móveis.
As regras @supports
e @media
são ferramentas essenciais para criar sites modernos, responsivos e acessíveis a uma ampla gama de dispositivos e preferências do usuário. Experimente incorporar essas técnicas em seus projetos para criar designs mais adaptáveis e inclusivos.