Prise en charge des navigateurs plus anciens
Si la prise en charge d'un navigateur plus ancien est indispensable et que vous ne pouvez pas opter pour des arrière-plans ou des dégradés multiples, vous voudrez probablement faire quelque chose comme ceci sur une réserve. div
élément :
#background {
position: fixed;
top: 0;
left: 0;
width: 50%;
height: 100%;
background-color: pink;
}
Ejemplo: http://jsfiddle.net/PLfLW/1704/
La solution utilise un div fixe supplémentaire qui remplit la moitié de l'écran. Comme elle est fixe, elle restera en place même si vos utilisateurs font défiler l'écran. Vous devrez peut-être modifier certains z-index par la suite, pour vous assurer que vos autres éléments sont au-dessus de la division d'arrière-plan, mais cela ne devrait pas être trop complexe.
Si vous rencontrez des problèmes, assurez-vous que le reste de votre contenu a un z-index supérieur à celui de l'élément d'arrière-plan et tout devrait bien se passer.
Navigateurs modernes
Si les navigateurs plus récents sont votre seule préoccupation, il existe quelques autres méthodes que vous pouvez utiliser :
Gradient linéaire :
C'est certainement la solution la plus simple. Vous pouvez utiliser un dégradé linéaire dans la propriété d'arrière-plan du corps pour obtenir divers effets.
body {
height: 100%;
background: linear-gradient(90deg, #FFC0CB 50%, #00FFFF 50%);
}
Cela provoque une coupure nette à 50 % pour chaque couleur, de sorte qu'il n'y a pas de "gradient" comme le nom l'indique. Essayez d'expérimenter avec la partie "50%" du style pour voir les différents effets que vous pouvez obtenir.
Ejemplo: http://jsfiddle.net/v14m59pq/2/
Arrière-plans multiples avec taille d'arrière-plan :
Vous pouvez appliquer une couleur de fond à l'écran html
puis appliquer une image d'arrière-plan à l'élément body
et utiliser l'élément background-size
pour la fixer à 50 % de la largeur de la page. L'effet obtenu est similaire, mais il ne peut être utilisé par rapport aux dégradés que si vous utilisez une ou deux images.
html {
height: 100%;
background-color: cyan;
}
body {
height: 100%;
background-image: url('http://i.imgur.com/9HMnxKs.png');
background-repeat: repeat-y;
background-size: 50% auto;
}
Ejemplo: http://jsfiddle.net/6vhshyxg/2/
NOTE SUPPLÉMENTAIRE : Remarquez que les deux html
y body
sont définis comme height: 100%
dans ces derniers exemples. Cela permet de s'assurer que, même si votre contenu est plus petit que la page, l'arrière-plan aura au moins la hauteur de la fenêtre d'affichage de l'utilisateur. Sans la hauteur explicite, l'effet d'arrière-plan ne descendra que jusqu'au contenu de votre page. Il s'agit également d'une bonne pratique en général.