476 votes

CSS3 fond dégradé sur corps doesn ' t étirer mais plutôt des répétitions ?

ok-dire le contenu à l'intérieur de l' <body> totaux de 300px de haut.

Si j'ai mis le fond de ma <body> l'aide -webkit-gradient ou -moz-linear-gradient

Puis-je optimiser ma fenêtre (ou tout simplement le rendre plus grand que 300px) le gradient sera exactement 300px de hauteur (la hauteur du contenu) et il suffit de répéter pour remplir le reste de la fenêtre.

Je suis en supposant que ce n'est pas un bug puisque c'est le même dans les deux webkit et gecko.

Mais est-il un moyen de rendre le gradient de s'étirer pour remplir la fenêtre au lieu de répéter?

798voto

Bryan Downing Points 6758

Appliquer le CSS suivant :

Edit : Ajouter `` à la déclaration du corps par commentaires (Martin).

Edit : Ajouter `` à la déclaration de corps par commentaires (Remi Green).

176voto

Joshua Rudd Points 901

En ce qui concerne une réponse précédente, mise en et à ne semble pas fonctionner si le contenu doit faire défiler. Ajout de à l’arrière-plan semble corriger cela - pas``

Par exemple :

15voto

John Sanford Points 109

Voici ce que j’ai fait pour résoudre ce problème... il va montrer le gradient pour toute la longueur du contenu, puis simplement revenir à la couleur d’arrière-plan (normalement la dernière couleur dans le dégradé).

J’ai testé dans FireFox 3.6, Safari 4 et Chrome, je garde la couleur d’arrière-plan dans le corps pour tous les navigateurs qui, pour une raison quelconque, ne supportent pas coiffer la balise HTML.

14voto

sidewaysmilk Points 1872

Paramètre html { height: 100%} peut faire des ravages avec IE. Voici un exemple (png). Mais vous savez ce qui fonctionne très bien? Il suffit de régler votre arrière-plan sur l' <html> balise.

html {
  -moz-linear-gradient(top, #fff, #000);
  /* etc. */
}

Arrière-plan s'étend vers le bas et pas bizarre le comportement de défilement se produit. Vous pouvez ignorer tous les autres correctifs. Et c'est largement pris en charge. Je n'ai pas trouvé un navigateur qui ne les laissez pas vous appliquer un arrière-plan de la balise html. Il est parfaitement valide CSS et a été pendant un certain temps. :)

12voto

Rick Smith Points 1066

Il y a beaucoup d'informations partielles sur cette page, mais pas une complète. Voici ce que je fais:

  1. Créer un gradient ici: http://www.colorzilla.com/gradient-editor/
  2. Jeu de dégradé sur le code HTML à la place du CORPS.
  3. Fixer le fond sur le code HTML avec "background-attachment: fixed;"
  4. Désactiver les marges haut et bas sur le CORPS
  5. (facultatif) j'ai l'habitude de créer un <DIV id='container'> que j'ai mis tout mon contenu dans

Voici un exemple:

html {  
  background: #a9e4f7; /* Old browsers */
  background: -moz-linear-gradient(-45deg,  #a9e4f7 0%, #0fb4e7 100%); /* FF3.6+ */
  background: -webkit-gradient(linear, left top, right bottom, color-stop(0%,#a9e4f7), color-stop(100%,#0fb4e7)); /* Chrome,Safari4+ */ 
  background: -webkit-linear-gradient(-45deg,  #a9e4f7 0%,#0fb4e7 100%); /* Chrome10+,Safari5.1+ */
  background: -o-linear-gradient(-45deg,  #a9e4f7 0%,#0fb4e7 100%); /* Opera 11.10+ */
  background: -ms-linear-gradient(-45deg,  #a9e4f7 0%,#0fb4e7 100%); /* IE10+ */
  background: linear-gradient(135deg,  #a9e4f7 0%,#0fb4e7 100%); /* W3C */ 
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#a9e4f7', endColorstr='#0fb4e7',GradientType=1 ); /* IE6-9 fallback on horizontal gradient */

  background-attachment: fixed;
}

body {
  margin-top: 0px;
  margin-bottom: 0px;
}

/* OPTIONAL: div to store content.  Many of these attributes should be changed to suit your needs */
#container
{
  width: 800px;
  margin: auto;
  background-color: white;
  border: 1px solid gray;
  border-top: none;
  border-bottom: none;
  box-shadow: 3px 0px 20px #333;
  padding: 10px;
}

Cela a été testé avec IE, Chrome et Firefox sur les pages de différentes tailles et de défilement des besoins.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X