Estou usando um gradiente radial como plano de fundo na minha página da Web, assim:
background-image: -webkit-gradient(radial, 100% 100%, 10, 90% 90%, 600, from(#ccc), to(#000));
Funciona, mas quando o conteúdo não preenche a página inteira, o gradiente é cortado. Como posso fazer o <body>
elemento preencher sempre a página inteira?
html
css
radial-gradients
Ry-
fonte
fonte
body { width: 100%; height: 100%; }
não funciona?body { width: 100%; height: 100%; }
não funciona. Acho que preciso aplicá-lo<html>
também.Respostas:
fonte
html { height: 100%; }
precisamos é realmente.html { height: 100%; }
nembody { height: 100%; }
foi o suficiente para mim (Opera incluído como um teste) O que funcionou melhor foihtml, body { min-height: 100%; }
a partir da altura em vez de min-height deixei meu fundo branco w / o background-color aplicado quando eu expandiu algumas divs recolhíveis no meio da minha página.min-height
consertou isso.100%
para100vh
.Em nosso site, temos páginas em que o conteúdo é estático e páginas em que é carregado com o AJAX. Em uma página (uma página de pesquisa), havia casos em que os resultados do AJAX preenchiam mais do que a página e casos em que não retornavam resultados. Para que a imagem de segundo plano preencha a página em todos os casos, tivemos que aplicar o seguinte CSS:
height
para ohtml
emin-height
para obody
.fonte
width: 100%;
.margin: 0;
é o suficiente, não há necessidade de especificar qual unidade você usa zeroComo nenhuma das outras respostas funcionou para mim, decidi postar isso como uma resposta para outras pessoas que procuravam uma solução que também encontrasse o mesmo problema. Tanto o html quanto o corpo precisavam ser definidos
min-height
ou o gradiente não preencheu a altura do corpo.Encontrei o comentário de Stephen P para fornecer a resposta correta para isso.
Quando tenho a altura html (ou html e corpo) definida como 100%,
fonte
Eu tive que aplicar 100% ao html e ao corpo.
fonte
Tente usar as unidades de medida da janela de visualização (vh, vm) no nível do corpo
html, corpo {margem: 0; estofamento: 0; } corpo {altura mínima: 100vh; }
Use unidades vh para margens horizontais, forros e bordas no corpo e subtraia-as do valor da altura mínima.
Eu tive resultados bizarros usando unidades vh, vm em elementos dentro do corpo, especialmente ao redimensionar.
fonte
Eu acho que a maneira mais correta, é definir css para isso:
fonte
Eu tentei todas as soluções acima e não estou desacreditando nenhuma delas, mas no meu caso, elas não funcionaram.
Para mim, o problema foi causado porque a
<header>
tag tinhamargin-top
5em e a<footer>
margem inferior de 5em. Eu os removi e, em vez disso, coloquei algunspadding
(superior e inferior, respectivamente). Não tenho certeza se a substituição da margem foi uma correção ideal para o problema, mas o ponto é que, se o primeiro e o último elemento do seu<body>
tiver algumas margens, convém analisá-lo e removê-lo.Minhas tags
html
ebody
tinham os seguintes estilosfonte
Se você tiver uma borda ou estofamento, a solução
produz a renderização imperfeita
Para acertar na presença de uma borda ou estofamento
use em vez disso
como Martin apontou, embora
overflow: hidden
não seja necessário.(2018 - testado com Chrome 69 e IE 11)
fonte
body
tag. Sem essa borda, obody
preenchimento será exatamente 100% da janela de visualização, é possível ver isso com uma cor de plano de fundo, por exemplo. A resposta correta para essa pergunta foi aceita há 7 anos ainda é válida.Isso funciona para mim:
fonte