recherche

Maison  >  Questions et réponses  >  le corps du texte

Pourquoi mon effet de dégradé ne s'estompe-t-il pas sur les bords de l'image ?

Je veux que les bords de l'image soient flous, ou du moins s'estompent vaguement. Rien de ce que j'ai essayé n'a fonctionné et j'ai regardé toutes les questions sur Stackoverflow. J'utilise CSS, pas Sass. Pour compliquer le problème, j'ai une image de fond sur la page et je la recouvre d'un masque blanc d'une opacité de 0,8. quelqu'un peut-il aider s'il vous plait?

C'est mon codepen.

.screen {
  position: relative;
  width: 100vw;
  height: 100vh;
  display: inline-block;
  overflow: hidden;
  margin-top: -6px;
}

.bg {
  background-image: url('//newsinteractive.post-gazette.com/.testLaura2/shutterstock_246230623.jpg');
  width: 100%;
  position: fixed;
  top: 0px;
  left: 0px;
  height: 100%;
  filter: blur(3px);
}

.bg-mask {
  width: 100%;
  background-color: rgba(255, 255, 255, .8);
  position: fixed;
  top: 0;
  left: 0;
  height: 100%;
}

#ballerina {
  position: absolute;
  top: 0px;
  left: 0px;
  width: 1600px;
  height: 1000px;
  background-image: url('http://newsinteractive.post-gazette.com/.testLaura2/BalletAudition04xx_2992.jpg');
}

#ballerina:after {
  position: absolute;
  top: 10px;
  left: 0px;
  width: 1600px;
  height: 1000px;
  background: -moz-linear-gradient(top, rgba(0, 0, 0, 0) 50%, rgba(0, 0, 0, 1) 100%);
  /* FF3.6+ */
  background: -webkit-gradient(linear, left top, left bottom, color-stop(50%, rgba(0, 0, 0, 0)), color-stop(100%, rgba(0, 0, 0, 1)));
  /* Chrome,Safari4+ */
  background: -webkit-linear-gradient(top, rgba(0, 0, 0, 0) 50%, rgba(0, 0, 0, 1) 100%);
  /* Chrome10+,Safari5.1+ */
  background: -o-linear-gradient(top, rgba(0, 0, 0, 0) 50%, rgba(0, 0, 0, 1) 100%);
  /* Opera 11.10+ */
  background: -ms-linear-gradient(top, rgba(0, 0, 0, 0) 50%, rgba(0, 0, 0, 1) 100%);
  /* IE10+ */
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0) 50%, rgba(0, 0, 0, 1) 100%);
  /* W3C */
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#00000000', endColorstr='#000000', GradientType=0);
  /* IE6-9 */
}
<div class="bg"></div>
<div class="bg-mask"></div>

<div class="screen height-auto">
  <div id="ballerina"></div>
</div>

P粉317679342P粉317679342504 Il y a quelques jours581

répondre à tous(1)je répondrai

  • P粉277305212

    P粉2773052122023-09-10 20:30:37

    J'ai fini par devoir changer un peu mon concept. J'ai supprimé l'image d'arrière-plan et le masque de la page entière et j'ai simplement défini l'arrière-plan de la page en blanc sans masque. Ensuite, j'ai utilisé la solution pour flouter les bords en utilisant CSS pour les images ou les images d'arrière-plan

    Mon code ressemble donc à ceci :

    html :

    <div class="img-contain">
        <img src="http://newsinteractive.post-gazette.com/.testLaura2/BalletAudition04xx_2992.jpg">
        <div class="block"></div>
    </div>

    CSS :

    .img-contain {
        margin: auto;
        width: 100%;
        margin: auto;
        position: relative;
    }
    
    .img-contain img {
        width: 100%;
        height: auto;
    }
    
    .block {
        width: 100%;
        position: absolute;
        bottom: 0px;
        top: 0px;
        box-shadow: inset -0px -0px 20px 20px white;
    }

    répondre
    0
  • Annulerrépondre