0Pricing
HTML Academy · Aula

viewBox do SVG e dimensionamento responsivo

Faça SVGs serem dimensionados corretamente em qualquer tamanho de tela.

viewBox do SVG e dimensionamento responsivo é uma aula grátis de HTML Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de HTML Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de HTML Academy inclui 4 aulas no total.

width e height versus viewBox

width e height do SVG definem o tamanho renderizado no DOM. O atributo viewBox define o espaço de coordenadas interno. Eles são independentes: um viewBox de "0 0 100 100" com width="200" height="200" amplia o espaço de coordenadas em 2 vezes.

Sintaxe de viewBox

viewBox="min-x min-y width height". O caso mais comum é: viewBox="0 0 100 100", que define um espaço de coordenadas de 100x100 começando na origem. Os valores de coordenadas no SVG referem-se a esse espaço, não a pixels.

SVG responsivo

Para criar um SVG responsivo, omita os atributos width e height (ou defina-os como 100%) e deixe que o viewBox defina as proporções. Adicione CSS: svg { width: 100%; height: auto; }. O SVG se ajusta ao contêiner, mantendo a proporção.

preserveAspectRatio

preserveAspectRatio controla como o viewBox se ajusta à janela de visualização do SVG quando as proporções são diferentes. Valores: "xMidYMid meet" (padrão — adiciona barras), "xMidYMid slice" (recorta para preencher), "none" (estica para preencher sem manter a proporção).

min-x e min-y para panorâmica

Alterar min-x e min-y desloca a parte visível do espaço de coordenadas do SVG. viewBox="50 50 100 100" mostra a região de (50,50) a (150,150). Isso permite criar uma panorâmica interativa atualizando os valores de viewBox com JavaScript.

Zoom com viewBox

Reduza as dimensões do viewBox para ampliar: viewBox="25 25 50 50" mostra uma região menor, ampliada para preencher o elemento SVG. Aumente as dimensões para reduzir o zoom. Atualize o viewBox em eventos de roda do mouse para criar um zoom interativo sem redimensionar o elemento SVG.

SVG em img versus SVG embutido

SVG em um elemento img: adapta-se responsivamente com object-fit, mas não pode ser estilizado com CSS nem controlado por scripts. SVG embutido: é totalmente acessível ao CSS e ao JavaScript, mas aumenta o tamanho do HTML. Escolha com base nas necessidades de interatividade.

Padrão de SVG para ícones

SVGs de ícones usam um viewBox fixo (por exemplo, "0 0 24 24") e não definem width nem height, permitindo que o CSS determine seu tamanho: .icon { width: 1.5rem; height: 1.5rem; }. O viewBox garante que os ícones sejam redimensionados corretamente em qualquer tamanho, mantendo a renderização vetorial nítida.

Symbol para sprites de ícones

Defina ícones em elementos <symbol viewBox="0 0 24 24"> dentro de um SVG oculto. Faça referência a eles: <use href="#icon-name">. Cada elemento use pode ter sua própria largura, altura, preenchimento e cor: um único arquivo de sprite para todos os ícones.

currentColor para temas

O preenchimento SVG fill="currentColor" herda a propriedade CSS color do elemento ou de seu elemento pai. Defina color: red no SVG ou em um elemento pai, e o ícone será preenchido automaticamente com a cor vermelha. Isso permite que ícones de uma só cor acompanhem a cor do texto sem uma estilização específica para SVG.

Depuração de viewBox

Se o conteúdo SVG parecer recortado ou estiver posicionado de forma inesperada, registre ou inspecione o valor de viewBox. Um erro comum é definir viewBox com as dimensões em pixels da arte de origem sem ajustá-lo ao tamanho renderizado, causando problemas de escala. Verifique se viewBox corresponde aos limites reais do conteúdo da arte SVG.

Verificação de conhecimentos

Como fazer um SVG se redimensionar de forma responsiva para se ajustar à largura de qualquer contêiner?

Resumo

O viewBox do SVG define um espaço de coordenadas interno independente do tamanho renderizado em pixels, permitindo uma escala responsiva. Definir width:100%; height:auto com um viewBox faz com que os SVGs se adaptem a qualquer contêiner. O padrão de sprite com symbol+use, a tematização com currentColor e preserveAspectRatio formam um conjunto completo de recursos para usar SVGs flexíveis e adaptáveis a temas.

Perguntas Frequentes

A aula “viewBox do SVG e dimensionamento responsivo” é grátis?

Sim — o texto completo de “viewBox do SVG e dimensionamento responsivo” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de HTML Academy, atualize para CoddyKit PRO. O curso de HTML Academy inclui 4 aulas no total.

O que vou aprender em “viewBox do SVG e dimensionamento responsivo”?

Faça SVGs serem dimensionados corretamente em qualquer tamanho de tela. Você pratica HTML Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar HTML Academy?

Nenhuma experiência prévia é necessária. HTML Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.

Quanto tempo leva a aula “viewBox do SVG e dimensionamento responsivo”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de HTML Academy?

Sim. Cada aula de HTML Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. SVG em linha versus img e object
  2. Formas básicas de SVG: rect circle path
  3. viewBox do SVG e dimensionamento responsivo
  4. Animando SVG com CSS e SMIL
← Voltar para HTML Academy