Puis-je définir l'image d'arrière-plan et l'opacité dans la même propriété?

264

Je peux voir dans les références CSS comment définir la transparence de l'image et comment définir une image d'arrière-plan . Mais comment puis-je combiner ces deux afin de définir une image d'arrière-plan transparente?

J'ai une image que j'aimerais utiliser comme arrière-plan, mais elle est trop lumineuse - je voudrais réduire l'opacité à environ 0,2. Comment puis-je faire ceci?

#main {
    background-image: url(/wp-content/uploads/2010/11/tandem.jpg); 
}
AP257
la source

Réponses:

133

Deux méthodes:

  1. Convertir en PNG et rendre l'image originale 0,2 opacité
  2. (Meilleure méthode) avoir un <div>qui est position: absolute;avant #mainet la même hauteur que #main, puis appliquez l'image d'arrière-plan et opacity: 0.2; filter: alpha(opacity=20);.
Niet l'Absolu Noir
la source
Oui, le gros problème avec un PNG est la taille. Cela va probablement être très important. Maintenant que nous pouvons spécifier opacity: ...dans tous les navigateurs, c'est bien mieux!
Alexis Wilke
1
Vous seriez surpris de ce que vous pouvez extraire du PNG. Par exemple, avec une opacité de 0,2, vous n'allez probablement pas choisir beaucoup de détails, vous pouvez donc convertir en PNG indexé. J'utilise en fait cela sur mon propre site Web, et il écrase une image d'arrière-plan 1920x1080 à un peu moins de 250 Ko.
Niet the Dark Absol du
Il vaut mieux ajouter z-index: -1 à cette position: absolue, afin de permettre d'utiliser les fonds au-dessus de la superposition. Bonne réponse.
Raz
1
Vous pouvez également utiliser WebP - il prend en charge la transparence et la taille du fichier est beaucoup plus petite que PNG. Tous les principaux navigateurs, à l'exception de Safari, prennent désormais en charge WebP. Vous pouvez servir WebP aux navigateurs compatibles et PNG à Safari.
Dan Roberts
365
#main {
    position: relative;
}
#main:after {
    content : "";
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    background-image: url(/wp-content/uploads/2010/11/tandem.jpg); 
    width: 100%;
    height: 100%;
    opacity : 0.2;
    z-index: -1;
}
Dan Eastwell
la source
4
Contenu généré à partir d'IE8. caniuse.com/#feat=css-gencontent , utilisez la propriété de filtre pour IE8. caniuse.com/#search=opacity
Dan Eastwell
3
J'ai ajouté un "z-index: -1" au CSS. De cette façon, l'image d'arrière-plan est affectée par l'opacité, pas le reste du contenu de #main
patrick
17
J'utilise à la :beforeplace de :afteret puis je n'ai pas à trafiquer le z-indexcar :beforese retrouve automatiquement sous le contenu principal. (Actuellement testé dans Chrome et FF.)
KajMagnus
1
@KajMagnus Si vous faites cela, alors tout ce qui suit ne sera pas affiché. Essayez d'avoir une opacité de 1.0, et vous verrez ce que je veux dire.
Jessica
1
Si vous obtenez une image d'arrière-plan répétée, vous pouvez / devez ajouter background-repeat: no-repeat; background-attachment: fixed; background-position: center;dans #main: après {...} .
ban-geoengineering
106

Solution avec 1 div et aucune image transparente:

Vous pouvez utiliser la fonctionnalité CSS3 multibackground et mettre deux arrière-plans: un avec l'image, un autre avec un panneau transparent dessus (car je pense qu'il n'y a aucun moyen de définir directement l'opacité de l'image d'arrière-plan):

background: -moz-linear-gradient(top, rgba(0, 0, 0, 0.7) 0%, rgba(0, 0, 0, 0.7) 100%), url(bg.png) repeat 0 0, url(https://cdn.sstatic.net/stackoverflow/img/apple-touch-icon.png) repeat 0 0;

background: -moz-linear-gradient(top, rgba(255,255,255,0.7) 0%, rgba(255,255,255,0.7) 100%), url(https://cdn.sstatic.net/stackoverflow/img/apple-touch-icon.png) repeat 0 0;

background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,0.7)), color-stop(100%,rgba(255,255,255,0.7))), url(https://cdn.sstatic.net/stackoverflow/img/apple-touch-icon.png) repeat 0 0;

background: -webkit-linear-gradient(top, rgba(255,255,255,0.7) 0%,rgba(255,255,255,0.7) 100%), url(https://cdn.sstatic.net/stackoverflow/img/apple-touch-icon.png) repeat 0 0;

background: -o-linear-gradient(top, rgba(255,255,255,0.7) 0%,rgba(255,255,255,0.7) 100%), url(https://cdn.sstatic.net/stackoverflow/img/apple-touch-icon.png) repeat 0 0;

background: -ms-linear-gradient(top, rgba(255,255,255,0.7) 0%,rgba(255,255,255,0.7) 100%), url(https://cdn.sstatic.net/stackoverflow/img/apple-touch-icon.png) repeat 0 0;

background: linear-gradient(to bottom, rgba(255,255,255,0.7) 0%,rgba(255,255,255,0.7) 100%), url(https://cdn.sstatic.net/stackoverflow/img/apple-touch-icon.png) repeat 0 0;

Vous ne pouvez pas l'utiliser rgba(255,255,255,0.5)car seul il n'est accepté qu'à l'arrière, vous avez donc utilisé des dégradés générés pour chaque navigateur pour cet exemple (c'est pourquoi il est si long). Mais le concept est le suivant:

background: tranparentColor, url("myImage"); 

http://jsfiddle.net/pBVsD/1/

Bois
la source
Cela ne fonctionnera que si l'arrière-plan est de couleur unie, si vous avez PNG24 qui est un arrière-plan et que vous voulez qu'il ait de l'opacité (au survol par exemple) alors cela ne fonctionnera pas, et vous devrez utiliser la méthode du pseudo-élément , ce qui est en fait mieux car il pourrait être utilisé dans IE 8 et supérieur.
vsync
66

Solution simple

si vous devez définir le dégradé sur l' image d' arrière-plan uniquement:

background-image: url(IMAGE_URL); /* fallback for older browsers */

background-image: linear-gradient(to bottom, rgba(0,0,0,0.6) 0%,rgba(0,0,0,0.6) 100%), url(IMAGE_URL);
Francesco Borzi
la source
L'image se déplace légèrement vers le haut. At-il un correctif?
HFR1994
6
Vous pouvez également utiliser RGBA 255,255,255 background-image: gradient linéaire (vers le bas, rgba (255,255,255,0,6) 0%, rgba (255,255,255,0,6) 100%), url (IMAGE_URL);
Roman
@Roman Vous pouvez définir le composant de couleur rgba sur la valeur utilisée comme couleur de fond dans l'élément ou son parent d'intégration (testé sur Chrome 58.0.3029.81, Edge 38.14393.0.0).
collapsar
46

J'ai vu cela et dans CSS3, vous pouvez maintenant placer du code comme ceci. Disons que je veux qu'il couvre tout l'arrière-plan, je ferais quelque chose comme ça. Ensuite, avec hsla(0,0%,100%,0.70)ou rgba, vous utilisez un fond blanc avec n'importe quel pourcentage de saturation ou d'opacité pour obtenir le look que vous désirez.

.body{
    background-attachment: fixed;
    background-image: url(../images/Store1.jpeg);
    display: block;
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
    background-color: hsla(0,0%,100%,0.70);
    background-blend-mode: overlay;
    background-repeat: no-repeat;
}
casques nathaniel
la source
2
L'ajout de la couleur d'arrière-plan et du mode de mélange d'arrière-plan a fait l'affaire pour moi. Maintenant j'ai un div avec une opacité qui n'affecte pas ses enfants!
Diego Victor de Jesus
1
c'est bien! J'ai créé une fonction jquery pour changer l'opacité lors du défilement, créant une couleur sur une image d'arrière-plan lorsque vous faites défiler vers le bas. $ (function () {$ (window) .scroll (function () {var scroll = $ (window) .scrollTop (); var current = 0; var now = (current-scroll) / 7; $ ('. slide ') .css (' background-position ', '50%' + now + 'px'); var color = Math.round (scroll / 7) / 100; $ ('. slide'). css ('background- color ',' rgba (128, 45, 87, '+ color +') ');});});
drooh
10

Vous pouvez utiliser CSS psuedo selector :: after pour y parvenir. Voici une démo fonctionnelle.

entrez la description de l'image ici

.bg-container{
  width: 100%;
  height: 300px;
  border: 1px solid #000;
  position: relative;
}
.bg-container .content{
  position: absolute;
  z-index:999;
  text-align: center;
  width: 100%;
}
.bg-container::after{
  content: "";
  position: absolute;
  top: 0px;
  left: 0px;
  width: 100%;
  height: 100%;
  z-index:-99;
  background-image: url(https://i.stack.imgur.com/Hp53k.jpg);
  background-size: cover;
  opacity: 0.4;
}
<div class="bg-container">
   <div class="content">
     <h1>Background Opacity 0.4</h1>
   </div>
</div>

Hari Das
la source
4

J'ai eu un problème similaire. J'avais une image et je voulais réduire la transparence et avoir un fond noir derrière l'image. Au lieu de réduire l'opacité ou de créer un fond noir ou tout autre div secondaire, je définis un dégradé linéaire sur l'image sur une seule ligne:

background: linear-gradient(to bottom, rgba(0, 0, 0, 0.8) 0%, rgba(0, 0, 0, 0.8) 100%), url("/img/picture.png");

matteo_dm
la source
3

J'ai utilisé la réponse de @Dan Eastwell et cela fonctionne très bien. Le code est similaire à son code mais avec quelques ajouts.

.granddata {
    position: relative;
    margin-left :0.5%;
    margin-right :0.5%;
}
.granddata:after {
    content : "";
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    background-image: url("/Images/blabla.jpg");
    width: 100%;
    height: 100%;
    opacity: 0.2;
    z-index: -1;
    background-repeat: no-repeat;
    background-position: center;
    background-attachment:fixed;
}
El camerounian
la source
2

Une excellente façon de le faire pour une image simple est de le faire en utilisant uniquement CSS pour définir l'arrière-plan de l'élément HTML de cette façon.

HTML {
    background: url('http://www.earthtimes.org/newsimage/eat-lead-by-example-obesity-expert-tells-parents_139.jpg');
    width: 100%;
    height: 100%;
}

Si vous voulez obtenir de la fantaisie et définir son opacité, alors, dans IE9 + *, vous pouvez définir une couleur d'arrière-plan transparente du corps. Cela fonctionne en superposant un blanc semi-transparent pour rendre l'image plus blanche et sembler plus lumineuse. Par exemple, un blanc avec une opacité de 75% ( rgba(255,255,255,.75)) produirait l'effet suivant.

HTML {
  background: url('http://www.earthtimes.org/newsimage/eat-lead-by-example-obesity-expert-tells-parents_139.jpg');
  width: 100%;
  height: 100%;
  position: relative;
}

body {
  width: 100%;
  min-height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  margin: 0;
  background: rgba(255, 255, 255, .75);
}
<p>Lorem ipsum dolor sit amet, et id, maecenas a convallis, elit facilisi congue augue id ac. Suscipit luctus egestas rutrum, amet tincidunt porttitor ante convallis magna, vivamus amet at turpis, ante lacinia blandit vel metus mauris rutrum. Ipsum nam adipiscing.
  Est sapien quis sem vestibulum, quis cubilia turpis, suspendisse mattis vehicula enim risus pede, placerat suspendisse dui. Convallis nostrud pede, mollit lobortis, ornare ipsum tempor faucibus tortor, vel pede, porttitor nulla nonummy vestibulum purus.
  Eros placerat tenetur augue ipsum aliquam, pellentesque congue condimentum sed vitae lectus.</p>
<p>Aliquam venenatis curabitur pellentesque sociosqu quam. Tincidunt id erat vestibulum in, est fermentum ipsum et augue, nascetur etiam. Lorem elit, sed donec, leo vivamus ac id enim faucibus vel. Nullam sit feugiat sed massa consectetuer auctor, nulla
  et erat lacinia nec, eget ut ante nullam est non in, elit porttitor in in donec eget porttitor. Interdum ultricies sem morbi facilisis nibh erat. Id suspendisse, sed tincidunt fringilla sit, sapien odio vel, at culpa augue sed taciti neque inceptos,
  massa class non. Vel tristique condimentum at pellentesque, commodo nulla sagittis rhoncus lorem. Viverra maecenas tellus pretium urna mauris proin, vel libero morbi, ante volutpat vestibulum augue. Itaque leo mauris turpis, vivamus nisl congue nisl
  nulla in turpis, eget vitae accumsan dolor ipsum leo venenatis, feugiat vehicula in risus, donec eu pede vivamus itaque nam. Justo amet vitae pellentesque sed, posuere fusce sapien, sed nam placerat libero sed etiam curabitur, suspendisse justo, amet
  porttitor.</p>
<p>Condimentum eget. Sem elementum a et mauris sem a, velit justo consectetuer in turpis mauris, sit sed elit cum, fusce suspendisse pretium dictum, mattis dui tortor tellus. Volutpat ut ante lorem nec laoreet aliquam, lorem est magna amet, integer mauris
  purus tellus. Porta enim repellendus aliquam eros. Turpis posuere elementum suscipit wisi lobortis, nec nunc consequat dictum ut unde at, mi lorem amet nunc. Cubilia pede, integer dolor, eget platea felis elit enim rhoncus, integer proin quam in ipsum
  lorem, diam curabitur netus pretium pellentesque. Donec rutrum ultrices placerat, curabitur maecenas, feugiat pede varius accumsan quam lorem, dui et dictumst asperiores nulla, vivamus urna nam leo libero. Posuere non convallis amet justo parturient,
  imperdiet consectetuer arcu praesent cursus risus, quis pretium dolor.</p>

  • Astuce: remarquez comment est le HTML position: relative, tandis que le corps l'est position: absolute. Il s'agit d'empêcher la couleur d'arrière-plan du corps de se comporter davantage comme un surligneur du texte dans le corps.

Cela pourrait même être étendu à quelque chose de comparable, mais toujours très distinct des filtres CSS en changeant autour de l'arrière-plan de couleur RGBA du corps. Par exemple, rgba(0,255,0,.75)créerait une teinte très verte comme vous pouvez le voir dans l'extrait de code.

HTML {
    background: url('http://www.earthtimes.org/newsimage/eat-lead-by-example-obesity-expert-tells-parents_139.jpg');
    width: 100%;
    height: 100%;
    position: relative;
}
body {
    width: 100%;
    min-height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    margin: 0;
    background: rgba(0,255,0,.75);
}
<p>Aliquam venenatis curabitur pellentesque sociosqu quam. Tincidunt id erat vestibulum in, est fermentum ipsum et augue, nascetur etiam. Lorem elit, sed donec, leo vivamus ac id enim faucibus vel. Nullam sit feugiat sed massa consectetuer auctor, nulla et erat lacinia nec, eget ut ante nullam est non in, elit porttitor in in donec eget porttitor. Interdum ultricies sem morbi facilisis nibh erat. Id suspendisse, sed tincidunt fringilla sit, sapien odio vel, at culpa augue sed taciti neque inceptos, massa class non. Vel tristique condimentum at pellentesque, commodo nulla sagittis rhoncus lorem. Viverra maecenas tellus pretium urna mauris proin, vel libero morbi, ante volutpat vestibulum augue. Itaque leo mauris turpis, vivamus nisl congue nisl nulla in turpis, eget vitae accumsan dolor ipsum leo venenatis, feugiat vehicula in risus, donec eu pede vivamus itaque nam. Justo amet vitae pellentesque sed, posuere fusce sapien, sed nam placerat libero sed etiam curabitur, suspendisse justo, amet porttitor.</p>
<p>Condimentum eget. Sem elementum a et mauris sem a, velit justo consectetuer in turpis mauris, sit sed elit cum, fusce suspendisse pretium dictum, mattis dui tortor tellus. Volutpat ut ante lorem nec laoreet aliquam, lorem est magna amet, integer mauris purus tellus. Porta enim repellendus aliquam eros. Turpis posuere elementum suscipit wisi lobortis, nec nunc consequat dictum ut unde at, mi lorem amet nunc. Cubilia pede, integer dolor, eget platea felis elit enim rhoncus, integer proin quam in ipsum lorem, diam curabitur netus pretium pellentesque. Donec rutrum ultrices placerat, curabitur maecenas, feugiat pede varius accumsan quam lorem, dui et dictumst asperiores nulla, vivamus urna nam leo libero. Posuere non convallis amet justo parturient, imperdiet consectetuer arcu praesent cursus risus, quis pretium dolor.</p>
<p>Lorem ipsum dolor sit amet, et id, maecenas a convallis, elit facilisi congue augue id ac. Suscipit luctus egestas rutrum, amet tincidunt porttitor ante convallis magna, vivamus amet at turpis, ante lacinia blandit vel metus mauris rutrum. Ipsum nam adipiscing. Est sapien quis sem vestibulum, quis cubilia turpis, suspendisse mattis vehicula enim risus pede, placerat suspendisse dui. Convallis nostrud pede, mollit lobortis, ornare ipsum tempor faucibus tortor, vel pede, porttitor nulla nonummy vestibulum purus. Eros placerat tenetur augue ipsum aliquam, pellentesque congue condimentum sed vitae lectus.</p>

  • Astuce: RGBA correspond à R ed G reen B lue A lpha. Ainsi, le navigateur interprète rgba(0,255,0,.75)comme quelque chose illustré par {red:0, green:255, blue:0, alpha:'75%'}.


* Un tableau complet de compatibilité peut être trouvé sur Can I Use. Cependant, veuillez également noter que vous devez cliquer sur "Afficher tout" pour voir que IE9 le prend en charge.


Addenda

Étant donné que j'ai déjà répondu à la question, mais que j'aimerais en ajouter davantage, je nomme cet addendum à la section et lui ajoute des informations potentiellement utiles. Donc, pour extrapoler encore plus sur le contenu ci-dessus, vous pouvez utiliser un SVG comme image de fond pour faire des choses impressionnantes. Par exemple, vous pouvez créer un fond d'écran de chargement comportant une icône de site Web sympa comme vous pouvez le voir dans l'exemple d'un SVG encodé en base64 ci-dessous.

HTML {
    background: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iNDAwIiBoZWlnaHQ9IjQwMCIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgMSAxIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWluWU1pbiIgYXJpYS1oaWRkZW49InRydWUiPjxnIGlkPSJrIj48ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9ImMiIGdyYWRpZW50VHJhbnNmb3JtPSJyb3RhdGUoLTEyMCkiIHRyYW5zZm9ybS1vcmlnaW49Ii41LjUiPjxzdG9wIG9mZnNldD0iMCUiIHN0b3AtY29sb3I9InJnYmEoMCwwLDAsLjYpIi8+PHN0b3Agb2Zmc2V0PSI0NyUiIHN0b3AtY29sb3I9InJnYmEoMCwwLDAsLjYpIi8+PHN0b3Agb2Zmc2V0PSI1MyUiIHN0b3AtY29sb3I9InJnYmEoMCwwLDAsLjMpIi8+PHN0b3Agb2Zmc2V0PSIxMDAlIiBzdG9wLWNvbG9yPSJyZ2JhKDAsMCwwLC45KSIvPjxhbmltYXRlVHJhbnNmb3JtIGF0dHJpYnV0ZU5hbWU9ImdyYWRpZW50VHJhbnNmb3JtIiBhdHRyaWJ1dGVUeXBlPSJYTUwiIHR5cGU9InJvdGF0ZSIgZHVyPSI3MDAwbXMiIGZyb209IjAiIHRvPSIzNjAiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIi8+PC9saW5lYXJHcmFkaWVudD48cmFkaWFsR3JhZGllbnQgaWQ9ImQiIHI9Ii41IiBjeT0iLjUiIGN4PSIuNSI+PHN0b3Agb2Zmc2V0PSIzNSUiIHN0b3AtY29sb3I9ImJsYWNrIi8+PHN0b3Agb2Zmc2V0PSI1MCUiIHN0b3AtY29sb3I9ImdyZXkiLz48c3RvcCBvZmZzZXQ9IjY1JSIgc3RvcC1jb2xvcj0iYmxhY2siLz48L3JhZGlhbEdyYWRpZW50PjxyYWRpYWxHcmFkaWVudCBpZD0iZSIgcj0iLjUiIGN5PSIuNSIgY3g9Ii41Ij48c3RvcCBvZmZzZXQ9IjAlIiBzdG9wLWNvbG9yPSJ3aGl0ZSIvPjxzdG9wIG9mZnNldD0iMjUlIiBzdG9wLWNvbG9yPSJ5ZWxsb3ciLz48c3RvcCBvZmZzZXQ9Ijc1JSIgc3RvcC1jb2xvcj0ieWVsbG93Ii8+PHN0b3Agb2Zmc2V0PSIxMDAlIiBzdG9wLWNvbG9yPSJ3aGl0ZSIvPjwvcmFkaWFsR3JhZGllbnQ+PGNsaXBQYXRoIGlkPSJmIj48cGF0aCBzdHJva2U9ImdyZXkiIHN0cm9rZS13aWR0aD0iLjAxIiBpZD0iYiIgZD0iTS43NS43MUEuMzEuMzEgMCAxIDEgLjc1LjMxTC42OS4zOEEuMjIuMjIgMCAxIDAgLjY4LjY2TC41Ni41N0wuNi41MUwuODIuNjh6TS42LjYzQS4xNC4xNCAwIDEgMSAuNjIuNDJMLjY2LjM5QS4xOS4xOSAwIDEgMCAuNjQuNjZ6TS41NS41OEEuMDcuMDcgMCAxIDEgLjU2LjQ2TC42LjQzQS4xMi4xMiAwIDEgMCAuNTkuNjF6Ii8+PC9jbGlwUGF0aD48Y2xpcFBhdGggaWQ9ImciPjxwYXRoIHN0cm9rZT0iZ3JleSIgZmlsbD0icmVkIiBzdHJva2Utd2lkdGg9Ii4wMSIgZD0iTS42LjYzQS4xNC4xNCAwIDEgMSAuNjIuNDJMLjY2LjM5QS4xOS4xOSAwIDEgMCAuNjQuNjZ6Ii8+PC9jbGlwUGF0aD48L2RlZnM+PGcgY2xpcC1wYXRoPSJ1cmwoI2YpIiBmaWxsPSJ1cmwoI2MpIj48cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0icmVkIiBjbGlwLXBhdGg9InVybCgjZykiLz48L2c+PGcgdHJhbnNmb3JtPSJzY2FsZSgxLjEpIiB0cmFuc2Zvcm0tb3JpZ2luPSIuNS41Ij48dGV4dD48dGV4dFBhdGggaHJlZj0iI2IiIGZvbnQtc2l6ZT0iLjY1JSIgZm9udC1mYW1pbHk9Im1vbm9zcGFjZSIgbGV0dGVyLXNwYWNpbmc9Ii0uNSUiIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPiBZT1VSIDx0c3BhbiBmaWxsPSJyZWQiPkVYQU1QTEUgV0VCU0lURTwvdHNwYW4+IExPR088L3RleHRQYXRoPjwvdGV4dD48L2c+PC9nPjwvc3ZnPg==');
    width: 100%;
    height: 100%;
    position: relative;
    background-size: cover;
}
body {
    width: 100%;
    min-height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    margin: 0;
    background: rgba(255,255,255,.5);
}
<p>Condimentum eget. Sem elementum a et mauris sem a, velit justo consectetuer in turpis mauris, sit sed elit cum, fusce suspendisse pretium dictum, mattis dui tortor tellus. Volutpat ut ante lorem nec laoreet aliquam, lorem est magna amet, integer mauris purus tellus. Porta enim repellendus aliquam eros. Turpis posuere elementum suscipit wisi lobortis, nec nunc consequat dictum ut unde at, mi lorem amet nunc. Cubilia pede, integer dolor, eget platea felis elit enim rhoncus, integer proin quam in ipsum lorem, diam curabitur netus pretium pellentesque. Donec rutrum ultrices placerat, curabitur maecenas, feugiat pede varius accumsan quam lorem, dui et dictumst asperiores nulla, vivamus urna nam leo libero. Posuere non convallis amet justo parturient, imperdiet consectetuer arcu praesent cursus risus, quis pretium dolor.</p>
<p>Lorem ipsum dolor sit amet, et id, maecenas a convallis, elit facilisi congue augue id ac. Suscipit luctus egestas rutrum, amet tincidunt porttitor ante convallis magna, vivamus amet at turpis, ante lacinia blandit vel metus mauris rutrum. Ipsum nam adipiscing. Est sapien quis sem vestibulum, quis cubilia turpis, suspendisse mattis vehicula enim risus pede, placerat suspendisse dui. Convallis nostrud pede, mollit lobortis, ornare ipsum tempor faucibus tortor, vel pede, porttitor nulla nonummy vestibulum purus. Eros placerat tenetur augue ipsum aliquam, pellentesque congue condimentum sed vitae lectus.</p>
<p>Aliquam venenatis curabitur pellentesque sociosqu quam. Tincidunt id erat vestibulum in, est fermentum ipsum et augue, nascetur etiam. Lorem elit, sed donec, leo vivamus ac id enim faucibus vel. Nullam sit feugiat sed massa consectetuer auctor, nulla et erat lacinia nec, eget ut ante nullam est non in, elit porttitor in in donec eget porttitor. Interdum ultricies sem morbi facilisis nibh erat. Id suspendisse, sed tincidunt fringilla sit, sapien odio vel, at culpa augue sed taciti neque inceptos, massa class non. Vel tristique condimentum at pellentesque, commodo nulla sagittis rhoncus lorem. Viverra maecenas tellus pretium urna mauris proin, vel libero morbi, ante volutpat vestibulum augue. Itaque leo mauris turpis, vivamus nisl congue nisl nulla in turpis, eget vitae accumsan dolor ipsum leo venenatis, feugiat vehicula in risus, donec eu pede vivamus itaque nam. Justo amet vitae pellentesque sed, posuere fusce sapien, sed nam placerat libero sed etiam curabitur, suspendisse justo, amet porttitor.</p>

  • Astuce: le background-size: coverCSS entraîne le redimensionnement du logo SVG en arrière-plan à la taille de l'élément HTML.
3.1415926535897932384626433833
la source
1

Dans votre CSS, ajoutez ...

 filter: opacity(50%);

En JavaScript, utilisez ...

 element.style.filter='opacity(50%)';

NB: Ajoutez des préfixes de fournisseur au besoin, mais Chromium devrait être bien sans.

Coder42
la source
0

Eh bien, la seule façon CSS de ne faire que la transparence d'arrière-plan est via, RGBamais comme vous voulez utiliser une image, je suggère d'utiliser Photoshop ou Gimp pour rendre l'image transparente, puis l'utiliser comme arrière-plan.


la source
Ce n'est pas correct, il y a une déclaration CSS3 opactiy: 1;:, pas seulement RGBa.
Kyle
4
Ce qu'il dit, c'est définir le background-imagestyle sur un conteneur, puis définir un opacitystyle sur le même élément. Cela rendrait également le texte et les autres contenus de cet élément transparents. Essayez ceci si vous ne me croyez pas: w3schools.com/Css/tryit.asp?filename=trycss_transparency
0

Je viens d'ajouter position = absolu, haut = 0, largeur = 100% dans le #main et définir la valeur d'opacité sur le #background

#main{height:100%;position:absolute; top:0;width:100%}
#background{//same height as main;background-image:url(image URL);opacity:0.2}

J'ai appliqué l'arrière-plan à un div avant le principal.

paresseux
la source
-1

Je suis tombé sur ce post car j'avais le même problème, alors je me suis demandé pourquoi jouer avec CSS, ajuster les valeurs et actualiser lorsque vous pouvez facilement ajuster l'opacité dans Photoshop? Copiez l'image, collez-la comme un nouveau calque puis déplacez le curseur d'opacité.

MBM
la source
2
ArtB a bien fait avec la dernière note. Il s'agit d'une solution parfaitement adaptée à un autre problème. Il y a des moments où ce n'est pas la bonne solution et c'est l'un d'entre eux.
jon
-1

J'ai eu un problème similaire et j'ai juste pris l'image d'arrière-plan avec photoshop et créé un nouveau .png avec l'opacité dont j'avais besoin. Problème résolu sans se soucier de savoir si mon CSS fonctionnait sur tous les appareils et navigateurs

Aebares
la source