Comment utiliser les dégradés CSS3 pour mon background-color
, puis appliquer un background-image
pour appliquer une sorte de texture transparente à la lumière?
css
background-image
gradient
Ronald
la source
la source
Réponses:
Arrière-plans multiples!
Ces 2 lignes sont le repli de tout navigateur qui ne fait pas de dégradés. Voir les notes pour empiler les images uniquement IE <9 ci-dessous.
La dernière ligne définit une image d'arrière-plan et un dégradé pour les navigateurs qui peuvent les gérer.
Presque tous les navigateurs actuels prennent en charge plusieurs images d'arrière-plan et arrière-plans CSS. Voir http://caniuse.com/#feat=css-gradients pour la prise en charge du navigateur. Pour un bon article sur les raisons pour lesquelles vous n'avez pas besoin de plusieurs préfixes de navigateur, voir http://codepen.io/thebabydino/full/pjxVWp/
Pile de couches
Il convient de noter que la première image définie sera la plus haute de la pile. Dans ce cas, l'image est en haut du dégradé.
Pour plus d'informations sur la superposition d'arrière-plan, voir http://www.w3.org/TR/css3-background/#layering .
Empiler les images UNIQUEMENT (pas de dégradés dans la déclaration) Pour IE <9
IE9 et les versions ultérieures peuvent empiler les images de la même manière. Vous pouvez l'utiliser pour créer une image dégradée pour ie9, mais personnellement, je ne le ferais pas. Cependant à noter lorsque vous utilisez uniquement des images, c'est-à-dire que <9 ignorera l'instruction de secours et ne montrera aucune image. Cela ne se produit pas lorsqu'un dégradé est inclus. Pour utiliser une seule image de secours dans ce cas, je suggère d'utiliser le merveilleux élément HTML conditionnel de Paul Irish avec votre code de secours:
Position d'arrière-plan, dimensionnement, etc.
D'autres propriétés qui s'appliqueraient à une seule image peuvent également être séparées par des virgules. Si une seule valeur est fournie, elle sera appliquée à toutes les images empilées, y compris le dégradé.
background-size: 40px;
contraindra l'image et le dégradé à une hauteur et une largeur de 40 pixels. Cependant, l'utilisationbackground-size: 40px, cover;
rendra l'image 40px et le dégradé couvrira l'élément. Pour appliquer uniquement un paramètre à une image, définissez la valeur par défaut pour l'autre:background-position: 50%, 0 0;
ou pour les navigateurs qui la prennent en charge, utilisezinitial
:background-position: 50%, initial;
Vous pouvez également utiliser le raccourci d'arrière-plan, mais cela supprime la couleur et l'image de secours.
Il en va de même pour l'arrière-plan, l'arrière-plan, etc.
la source
background-position
juste pour l'image et non le dégradé?Si vous souhaitez également définir la position d'arrière-plan de votre image, vous pouvez utiliser ceci:
ou vous pouvez également créer un mixin MOINS (style bootstrap):
la source
Une chose à réaliser est que la première image d'arrière-plan définie est la plus haute de la pile. La dernière image définie sera la plus basse. Cela signifie que pour avoir un dégradé d'arrière-plan derrière une image, vous aurez besoin de:
Vous pouvez également définir des positions et une taille d'arrière-plan pour les images. J'ai préparé un article de blog sur certaines choses intéressantes que vous pouvez faire avec les dégradés CSS3
la source
background-image: linear-gradient(rgba(22,22,22,0), rgba(22,22,22,0.6)), url('image.jpg');
vous pouvez simplement taper:
la source
linear-gradient()
devait venir avant leurl()
, et une transparence partielle devait être utilisée pour les couleurs dégradées, en utilisantrgba()
. N'importe quoi d'autre a simplement utilisé la première définition de la liste (comme si la seconde était une solution de repli, similaire au fonctionnement desfont-family
déclarations).J'utilise toujours le code suivant pour le faire fonctionner. Il y a quelques notes:
Cette technique est la même que nous avons plusieurs images d'arrière-plan comme décrit ici
la source
ma solution:
la source
J'avais une implémentation où je devais pousser cette technique un peu plus loin, et je voulais décrire mon travail. Le code ci-dessous fait la même chose mais utilise SASS, Bourbon et un sprite d'image.
SASS et Bourbon s'occupent du code du navigateur croisé, et maintenant tout ce que j'ai à déclarer est la position du sprite par bouton. Il est facile d'étendre ce principe pour les boutons actifs et les états de survol.
la source
Si vous avez d'étranges erreurs lors du téléchargement des images d'arrière-plan, utilisez le vérificateur de liens W3C: https://validator.w3.org/checklink
Voici les mixins modernes que j'utilise (crédits: PSA: n'utilisez pas de générateurs de gradient ):
la source
Voici un MIXIN que j'ai créé pour gérer tout ce que les gens aimeraient utiliser:
Cela peut être utilisé comme ceci:
J'espère que vous trouverez cela utile.
crédit à @Gidgidonihah pour avoir trouvé la solution initiale.
la source
J'essayais de faire la même chose. Alors que la couleur d'arrière-plan et l'image d'arrière-plan existent sur des calques séparés au sein d'un objet - ce qui signifie qu'elles peuvent coexister - les dégradés CSS semblent coopter la couche d'image d'arrière-plan.
D'après ce que je peux dire, border-image semble avoir un support plus large que plusieurs arrière-plans, donc c'est peut-être une approche alternative.
http://articles.sitepoint.com/article/css3-border-images
MISE À JOUR: Un peu plus de recherche. Il semble que Petra Gregorova ait quelque chose qui fonctionne ici -> http://petragregorova.com/demos/css-gradient-and-bg-image-final.html
la source
Vous pouvez utiliser plusieurs arrière-plans: linear-gradient (); appels, mais essayez ceci:
Si vous voulez que les images soient complètement fusionnées là où il ne semble pas que les éléments se chargent séparément en raison de requêtes HTTP distinctes, utilisez cette technique. Ici, nous chargeons deux choses sur le même élément qui se chargent simultanément ...
Assurez-vous simplement de convertir d'abord votre image / texture png transparente 32 bits pré-rendue en chaîne base64 et de l'utiliser dans l'appel CSS d'arrière-plan (à la place de INSERTIMAGEBLOBHERE dans cet exemple).
J'ai utilisé cette technique pour fusionner une texture d'apparence de tranche et d'autres données d'image sérialisées avec une règle css de transparence / gradient linéaire rgba standard. Fonctionne mieux que la superposition de plusieurs images et le gaspillage des requêtes HTTP, ce qui est mauvais pour les mobiles. Tout est chargé côté client sans opération de fichier requise, mais augmente la taille des octets du document.
la source
Si vous devez obtenir des dégradés et des images d'arrière-plan qui fonctionnent ensemble dans IE 9 (HTML 5 et HTML 4.01 Strict), ajoutez la déclaration d'attribut suivante à votre classe CSS et elle devrait faire l'affaire:
Notez que vous utilisez l'
filter
attribut et qu'il existe deux instances deprogid:[val]
séparées par une virgule avant de fermer la valeur d'attribut avec un point-virgule. Voici le violon . Notez également que lorsque vous regardez le violon, le dégradé s'étend au-delà des coins arrondis. Je n'ai pas de solution pour cet autre qui n'utilise pas de coins arrondis. Notez également que lorsque vous utilisez un chemin relatif dans l'attribut src [IMAGE_URL], le chemin est relatif à la page du document et non au fichier css (voir source ).Cet article ( http://coding.smashingmagazine.com/2010/04/28/css3-solutions-for-internet-explorer/ ) est ce qui m'a conduit à cette solution. C'est assez utile pour CSS3 spécifique à IE.
la source
Je voulais faire un bouton span avec l'image d'arrière-plan, une combinaison de dégradé d'arrière-plan.
http://enjoycss.com/ a aidé à faire ma tâche de travail. Seulement, je dois supprimer certains CSS supplémentaires générés automatiquement. Mais c'est vraiment un bon site pour créer votre travail à gratter.
la source
Je résous le problème de cette façon. Je définis le dégradé en HTML et l'image de fond dans le corps
la source
Pour ma conception réactive, ma flèche vers le bas sur le côté droit de la boîte (accordéon vertical), le pourcentage accepté comme position. Initialement, la flèche vers le bas était "position: absolue; droite: 13 px;". Avec le positionnement à 97%, cela a fonctionné comme un charme comme suit:
PS Désolé, je ne sais pas comment gérer les filtres.
la source
Comme méthode sûre, vous pouvez simplement créer une image d'arrière-plan, c'est-à-dire 500x5 pixels, à votre
css
utilisation:Où
xxxxxx
correspond à la couleur qui correspond à la couleur du dégradé final.Vous pouvez également corriger cela au bas de l'écran et le faire correspondre à la couleur de dégradé initiale.
la source