ok, digamos que o conteúdo <body>
totalize 300px de altura.
Se eu definir o plano de fundo do meu <body>
uso -webkit-gradient
ou-moz-linear-gradient
Depois, maximizo minha janela (ou apenas a levo a mais de 300px), o gradiente terá exatamente 300px (a altura do conteúdo) e repito para preencher o restante da janela.
Estou assumindo que isso não é um bug, pois é o mesmo no webkit e no gecko.
Mas existe uma maneira de fazer o gradiente esticar para preencher a janela em vez de repetir?
margin:0;
nobody
ou então eu tenho uma lacuna na parte inferior da minha página.background-repeat
ebackground-attachment
vêm após suasbackground
regras. Caso contrário, o fundo ainda poderá se repetir.Em relação a uma resposta anterior, a criação
html
ebody
aheight: 100%
não parece trabalho, se as necessidades de conteúdo para rolagem. A adiçãofixed
ao plano de fundo parece consertar isso - nãoneed for height: 100%;
Por exemplo:
fonte
background-attachment: fixed
min-height:100%
(em navegadores compatíveis)Eu sei que estou atrasado para a festa, mas aqui está uma resposta mais sólida.
Tudo o que você precisa fazer é usar
min-height: 100%;
e não,height: 100%;
e o plano de fundo gradiente estenderá toda a altura da janela de visualização sem repetir, mesmo que o conteúdo seja rolável.Como isso:
fonte
Aqui está o que eu fiz para resolver esse problema ... ele mostrará o gradiente para todo o comprimento do conteúdo e, em seguida, simplesmente retornará à cor de fundo (normalmente a última cor do gradiente).
Eu testei isso no FireFox 3.6, Safari 4 e Chrome, mantenho a cor de plano de fundo no corpo de qualquer navegador que, por algum motivo, não suporte o estilo da tag HTML.
fonte
A configuração
html { height: 100%}
pode causar estragos no IE. Aqui está um exemplo (png). Mas você sabe o que funciona muito bem? Basta definir seu plano de fundo na<html>
tag.O plano de fundo se estende para a parte inferior e nenhum comportamento de rolagem estranho ocorre. Você pode pular todas as outras correções. E isso é amplamente suportado. Não encontrei um navegador que não permita aplicar um plano de fundo à tag html. É CSS perfeitamente válido e existe há algum tempo. :)
fonte
html
mas ele pára parcialmente na página no meu caso. A adiçãobackground-attachment:fixed
resolve o problema. Vi isso acontecer em mais de um site, mas não consegui encontrar a causa.html, body { height: 100%; }
.Há muita informação parcial nesta página, mas não uma completa. Aqui está o que eu faço:
<DIV id='container'>
que coloco todo o meu conteúdoAqui está um exemplo:
Isso foi testado com o IE, Chrome e Firefox em páginas de vários tamanhos e necessidades de rolagem.
fonte
Sujo; talvez você possa apenas adicionar uma altura mínima: 100%; para o html e as tags do corpo? Isso ou pelo menos definiu uma cor de fundo padrão que também é a cor final do gradiente.
fonte
Eu tive problemas para obter as respostas aqui para trabalhar.
Eu achei que funcionava melhor para corrigir uma div em tamanho real no corpo, fornecer um índice z negativo e anexar o gradiente a ele.
Aqui está uma amostra completa https://gist.github.com/morefromalan/8a4f6db5ce43b5240a6ddab611afdc55
fonte
Eu usei esse código CSS e funcionou para mim:
Uma informação relacionada é que você pode criar seus próprios ótimos gradientes em http://www.colorzilla.com/gradient-editor/
/ Sten
fonte
fonte
foi o que eu fiz:
antes de flutuar o corpo, havia uma lacuna na parte superior e mostrava a cor de fundo do html. se eu remover a cor bg do html, quando rolar para baixo, o gradiente será cortado. então eu flutuei o corpo e defini sua posição para relativa e a largura para 100%. trabalhou em safari, chrome, firefox, opera, internet expl .. oh espera. : P
O que é que vocês acham?
fonte
em vez de 100%, eu apenas adiciono alguns pixxel consegui isso agora e funciona para a página inteira sem lacunas:
fonte