Prise en charge des anciens navigateurs
Si la prise en charge d'anciens navigateurs est indispensable, de sorte que vous ne pouvez pas utiliser plusieurs arrière-plans ou dégradés, vous voudrez probablement faire quelque chose comme ça sur un div
élément de rechange :
#background {
position: fixed;
top: 0;
left: 0;
width: 50%;
height: 100%;
background-color: pink;
}
Exemple: http://jsfiddle.net/PLfLW/1704/
La solution utilise un div fixe supplémentaire qui remplit la moitié de l'écran. Comme il est corrigé, il restera en place même lorsque vos utilisateurs font défiler. Vous devrez peut-être manipuler certains z-index plus tard, pour vous assurer que vos autres éléments sont au-dessus du div d'arrière-plan, mais cela ne devrait pas être trop complexe.
Si vous rencontrez des problèmes, assurez-vous simplement que le reste de votre contenu a un z-index supérieur à l'élément d'arrière-plan et vous devriez être prêt à partir.
Navigateurs modernes
Si les navigateurs plus récents sont votre seule préoccupation, il existe deux 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é background du corps pour une variété d'effets.
body {
height: 100%;
background: linear-gradient(90deg, #FFC0CB 50%, #00FFFF 50%);
}
Cela provoque une coupure ferme à 50% pour chaque couleur, il n'y a donc pas de "dégradé" comme son nom l'indique. Essayez de tester l'élément "50%" du style pour voir les différents effets que vous pouvez obtenir.
Exemple: http://jsfiddle.net/v14m59pq/2/
Plusieurs arrière-plans avec la taille de l'arrière-plan:
Vous pouvez appliquer une couleur d'arrière-plan à l' html
élément, puis appliquer une image d'arrière-plan à l' body
élément et utiliser la background-size
propriété pour le définir à 50% de la largeur de la page. Cela se traduit par un effet similaire, mais ne serait vraiment utilisé que sur des dégradés si vous utilisez une image ou deux.
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;
}
Exemple: http://jsfiddle.net/6vhshyxg/2/
REMARQUE SUPPLÉMENTAIRE: Notez que les éléments html
et body
sont définis sur height: 100%
les derniers exemples. Ceci permet de s'assurer que même si votre contenu est plus petit que la page, l'arrière-plan sera au moins la hauteur de la fenêtre de l'utilisateur. Sans la hauteur explicite, l'effet d'arrière-plan ne descendra que jusqu'au contenu de votre page. C'est aussi juste une bonne pratique en général.
linear-gradient
coupure dure fonctionne également pour les pixels:background: linear-gradient(90deg, #FFC0CB 225px, #00FFFF 0, #00FFFF 100%);
background: linear-gradient(90deg, #FFC0CB 25%, #00FFFF 0);
.Solution simple pour obtenir un arrière-plan "divisé en deux":
Vous pouvez également utiliser les degrés comme direction
la source
Vous pouvez faire une distinction nette au lieu du dégradé linéaire en mettant la deuxième couleur à 0%
Par exemple,
Pente -
background: linear-gradient(80deg, #ff0000 20%, #0000ff 80%);
Distinction difficile -
background: linear-gradient(80deg, #ff0000 20%, #0000ff 0%);
la source
Donc, c'est une question terriblement ancienne qui a déjà une réponse acceptée, mais je crois que cette réponse aurait été choisie si elle avait été publiée il y a quatre ans.
J'ai résolu cela uniquement avec CSS, et sans ÉLÉMENTS DOM SUPPLÉMENTAIRES! Cela signifie que les deux couleurs sont purement cela, juste des couleurs d'arrière-plan d'UN ELEMENT, pas la couleur d'arrière-plan de deux.
J'ai utilisé un dégradé et, parce que j'ai placé les couleurs d'arrêt si étroitement ensemble, il semble que les couleurs sont distinctes et qu'elles ne se mélangent pas.
Voici le dégradé en syntaxe native:
Couleur
#74ABDD
commence à0%
et est toujours#74ABDD
à49.9%
.Ensuite, je force le dégradé à passer à ma couleur suivante à l'intérieur
0.2%
de la hauteur des éléments, créant ce qui semble être une ligne très solide entre les deux couleurs.Voici le résultat:
Et voici mon JSFiddle!
S'amuser!
la source
background: repeating-linear-gradient(var(--grayLight), var(--grayLight) 430px, rgba(0,0,0,0) 201px, rgba(0,0,0,0) 100%);
cela devrait fonctionner avec du css pur.
testé dans Chrome uniquement.
la source
Dans un projet précédent qui devait prendre en charge IE8 + et j'ai réalisé cela en utilisant une image encodée au format data-url.
L'image faisait 2800x1px, la moitié de l'image était blanche et la moitié transparente. A plutôt bien fonctionné.
Vous pouvez le voir fonctionner ici JsFiddle . J'espère que cela peut aider quelqu'un;)
la source
Je l'ai utilisé
:after
et cela fonctionne dans tous les principaux navigateurs. veuillez vérifier le lien. juste besoin de faire attention au z-index comme après avoir la position absolue.lien violon
la source
Vous pouvez utiliser le
:after
pseudo-sélecteur pour y parvenir, même si je ne suis pas sûr de la compatibilité descendante de ce sélecteur.J'ai utilisé ceci pour avoir deux dégradés différents sur un fond de page.
la source
Utiliser sur votre image bg
Division verticale
Division horizontale
Exemple
la source
background-position: center center
Une des façons d'implémenter votre problème pour saisir une seule ligne dans votre div:
Voici un code de démonstration et plus d'options (horizontal, diagonal, etc.), vous pouvez cliquer sur "Exécuter l'extrait de code" pour le voir en direct.
la source
L'option la plus sûre et la plus correcte du point de vue sémantique serait d'utiliser un pseudo-élément à position fixe (
::after
ou::before
). En utilisant cette technique, n'oubliez pas de définirz-index
les éléments à l'intérieur du conteneur. Notez également que cettecontent:""
règle pour le pseudo-élément est nécessaire, sinon elle ne sera pas rendue.Exemple en direct: https://jsfiddle.net/xraymutation/pwz7t6we/16/
la source
la source
Ceci est un exemple qui fonctionnera sur la plupart des navigateurs.
Fondamentalement, vous utilisez deux couleurs de fond, la première à partir de 0% et se terminant à 50% et la seconde à partir de 51% et se terminant à 100%
J'utilise l'orientation horizontale:
Pour différents ajustements, vous pouvez utiliser http://www.colorzilla.com/gradient-editor/
la source
si vous souhaitez utiliser
linear-gradient
avec 50% de hauteur:la source