Calculadora de proporção CSS para padding-top responsivo
Esta calculadora de proporção CSS transforma largura e altura no percentual de padding-top usado pela técnica clássica de caixa responsiva.
Executar grátis
Informe dimensões positivas, como 16 e 9, e receba uma porcentagem pronta para copiar. Ela ajuda na manutenção de folhas de estilo antigas, na criação de alternativas compatíveis e na geração de contêineres de mídia incorporada a partir de dimensões armazenadas. O cálculo é determinístico, não guarda dados e produz o mesmo resultado no navegador e pela API.
Transforme dimensões em espaço vertical responsivo
No CSS, um preenchimento vertical definido em porcentagem é calculado com base na largura do bloco que o contém. Esse comportamento permite reservar altura antes do carregamento de uma imagem, vídeo, iframe ou outro conteúdo incorporado. A calculadora divide a altura informada pela largura, multiplica o resultado por cem e acrescenta o sinal de porcentagem. Assim, as conhecidas dimensões panorâmicas 16 por 9 geram um valor que pode ser aplicado diretamente em uma declaração padding-top. As dimensões não precisam estar em pixels nem representar um arquivo grande. Basta que usem a mesma unidade, pois o cálculo depende somente da proporção. Um arquivo de 1600 por 900, uma miniatura de 160 por 90 e um quadro de 16 por 9 reservam o mesmo espaço relativo. Use números positivos e finitos nos dois campos; valores ausentes, iguais a zero, negativos ou não numéricos são rejeitados para não produzir CSS incorreto ou inutilizável.
Aplique o percentual como alternativa em CSS
A porcentagem calculada serve para o padrão tradicional de caixa com proporção intrínseca. Aplique o valor ao padding-top de um contêiner, defina position: relative nele e posicione o elemento filho de forma absoluta para preencher a área reservada. O contêiner acompanha a largura disponível enquanto o preenchimento vertical mantém a proporção desejada. O CSS moderno oferece a propriedade aspect-ratio, geralmente mais clara para projetos novos, mas caixas baseadas em preenchimento continuam úteis em folhas antigas, soluções de compatibilidade, trechos gerados e bases de código que já adotam essa técnica. Considere o resultado como texto CSS, e não como uma nova razão numérica. Se a origem tiver largura 4 e altura 3, informe nessa ordem; trocar os valores cria intencionalmente uma caixa vertical. A ferramenta não analisa arquivos nem deduz a orientação. Ela executa apenas a conversão solicitada, com resultado previsível para scripts de build, modelos e migrações.
Escolha as dimensões e entenda a precisão
Use a largura e a altura intrínsecas quando o contêiner precisar acompanhar um arquivo real, ou use dimensões de projeto para reservar um espaço planejado. Valores grandes são aceitos desde que sejam números positivos e finitos, mas reduzir ambos pelo mesmo fator não altera o resultado. Dimensões decimais também funcionam, o que ajuda quando a proporção vem de medições de layout, não de um tamanho inteiro de mídia. O resultado aparece como uma porcentagem compacta com precisão significativa suficiente para layouts CSS comuns. O navegador pode arredondar subpixels em determinadas larguras de tela; por isso, uma porcentagem matematicamente precisa não garante que toda borda coincida com um pixel físico. Esse é um comportamento normal do layout, não uma mudança da proporção. Quando possível, use aspect-ratio como regra principal e deixe o padding calculado como alternativa. Pela API, cada solicitação determinística custa US$ 0,002; no navegador, o mesmo cálculo puro é executado localmente.
Casos de uso
Reserve espaço para vídeo responsivo
Converta as dimensões originais do vídeo no padding-top de um contêiner que evita mudanças de layout antes do player carregar.
Gere alternativas para proporção
Crie declarações baseadas em preenchimento enquanto uma migração adota gradualmente a propriedade moderna aspect-ratio.
Monte modelos de mídia incorporada
Transforme metadados de largura e altura em uma porcentagem ao gerar iframes, imagens ou componentes reutilizáveis.
Perguntas frequentes
Qual fórmula a calculadora utiliza?
Ela divide a altura pela largura, multiplica o valor por cem e devolve o resultado com o sinal de porcentagem.
Por que o preenchimento vertical percentual mantém a proporção?
O CSS calcula esse preenchimento pela largura do bloco contêiner; assim, o espaço vertical muda proporcionalmente com ela.
Devo usar padding-top ou a propriedade aspect-ratio?
Em código moderno, prefira aspect-ratio. Use o padding-top calculado para compatibilidade, padrões existentes ou alternativas geradas.
Largura e altura podem ser números decimais?
Sim. Os dois valores podem ser inteiros ou decimais, desde que sejam finitos e maiores que zero.
O que acontece se uma dimensão for zero ou negativa?
A solicitação falha com um erro de entrada inválida, pois esses valores não definem uma caixa responsiva válida.
Quanto custa uma solicitação pela API?
Cada solicitação pela API custa US$ 0,002. O mesmo cálculo determinístico também está disponível no navegador.
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/image/css-aspect-ratio \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"width":16,"height":9}'const res = await fetch("https://api.kit.forhosting.com/image/css-aspect-ratio", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"width": 16,
"height": 9
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/image/css-aspect-ratio",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"width": 16,
"height": 9
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/image/css-aspect-ratio", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"width":16,"height":9}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"width":16,"height":9}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/image/css-aspect-ratio", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"width": 16,
"height": 9
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "image.css_aspect_ratio",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Limites
max_mb | 15 |
max_megapixels | 12 |
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |