Vous devez définir des pourcentages sur les dégradés CSS, pas des pixels absolus. Et tant que vous vous souciez seulement des navigateurs modernes (c'est à dire que vous ne vous souciez pas de IE6), alors je vous suggère de rester à l'écart des images, le CSS fonctionne bien.
Je tire ma réponse de la réponse à cette question que je souhaite que je pourrais upvote 100 fois: How to get a vertical gradient background to work in all browsers? Cette réponse acceptée a tout ce dont vous avez besoin avec une compatibilité croisée complète.
est ici où je pris votre exemple et fait le travail: http://jsfiddle.net/HJvpf/1/
body {
background: -moz-linear-gradient(top, red 0%, blue 100%);
background: -webkit-gradient(linear, left top, left 100%, from(red), to(blue));
}
Oh et votre lien 2ème jsFiddle, la raison pour laquelle il répétait le gradient est parce que vous définissez la hauteur de 100% sur html
mais le gradient était au body
. Vous déplacez ce height: 100%;
vers le body
et cela fonctionne assez bien, mais comme vous pouvez le voir dans ma solution, vous n'avez pas besoin de spécifier la hauteur du tout.
Editer: Donc vous ne voulez pas que ça se répète, mais vous ne voulez pas non plus qu'il prenne toute la hauteur. Réglez simplement repeat-x
. http://www.w3schools.com/css/pr_background-repeat.asp
body {
background: -moz-linear-gradient(top, red, blue) repeat-x;
background: -webkit-gradient(linear, left top, left bottom, from(red), to(blue)) repeat-x;
}
Pour la couleur de fond gradient remplir le reste de l'espace:
body {
background: blue -moz-linear-gradient(top, red, blue) repeat-x;
background: blue -webkit-gradient(linear, left top, left bottom, from(red), to(blue)) repeat-x;
}
laissez-le répéter? Il regarde non? probablement, je vais mettre le dernier arrêt de couleur à quelque chose comme 99999px doute toute la page sera si longtemps –
Ah, donc vous voulez réellement le dégradé pour montrer toute la hauteur de l'objet (il est logique maintenant que j'ai lu notre question de plus près).Cela peut fonctionner pour vous - http://www.webdesignerwall.com/tutorials/cross-browser-css-gradient/ (voir "Cross-Browser CSS Gradient") –
Rappelez-vous jiewmeng, si vous définissez la hauteur trop grande, puis 'won' t obtenir un grand effet de gradient. – anothershrubery