Comment utiliser les effets de filtre CSS sur les images d'arrière-plan
P粉022285768
P粉022285768 2023-08-20 13:28:36
0
2
485
<p>J'ai un fichier JPEG que j'utilise comme image d'arrière-plan pour ma page de recherche et je le configure en utilisant CSS car je travaille dans un contexte Backbone.js : </p> <pre class="brush:php;toolbar:false;">image d'arrière-plan : url("whatever.jpg");</pre> <p>Je souhaite appliquer un filtre de flou CSS 3 uniquement à l'arrière-plan, mais je ne sais pas comment styliser uniquement cet élément. Si j'essaye : </p> <pre class="brush:php;toolbar:false;">-webkit-filter: flou(5px); -moz-filter : flou (5px); -o-filtre : flou (5px); -ms-filter : flou (5px); filtre : flou (5px);</pre> <p>Placez le code ci-dessus dans mon CSS sous <code>background-image</code> et il stylisera la page entière, pas seulement l'arrière-plan. Existe-t-il un moyen de sélectionner uniquement une image et d'appliquer un filtre à cette image ? Alternativement, existe-t-il un moyen de simplement désactiver l'effet de flou pour les autres éléments de la page ? </p>
P粉022285768
P粉022285768

répondre à tous(2)
P粉491421413

stylo

Suppression du besoin d'éléments supplémentaires, permettant au contenu de s'intégrer dans le flux documentaire sans être fixe/absolu comme d'autres solutions.

Utilisez les méthodes suivantes pour réaliser

.content {
  /* this is needed or the background will be offset by a few pixels at the top */
  overflow: auto;
  position: relative;
}

.content::before {
  content: "";
  position: fixed;
  left: 0;
  right: 0;
  z-index: -1;

  display: block;
  background-image: url('https://i.imgur.com/lL6tQfy.png');
  background-size:cover;
  width: 100%;
  height: 100%;

  -webkit-filter: blur(5px);
  -moz-filter: blur(5px);
  -o-filter: blur(5px);
  -ms-filter: blur(5px);
  filter: blur(5px);
}
<div class="content">
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
</div>

Modifier Si vous souhaitez supprimer la bordure blanche sur le bord, utilisez la gauche et le haut de 110%的宽度和高度以及-5%. Cela agrandira légèrement votre image d’arrière-plan, mais il n’y aura pas de couleur unie qui saigne sur les bords. Merci à Chad Fawcett pour la suggestion.

.content {
  /* this is needed or the background will be offset by a few pixels at the top */
  overflow: auto;
  position: relative;
}

.content::before {
  content: "";
  position: fixed;
  top: -5%;
  left: -5%;
  right: -5%;
  z-index: -1;

  display: block;
  background-image: url('https://i.imgur.com/lL6tQfy.png');
  background-size:cover;
  width: 110%;
  height: 110%;

  -webkit-filter: blur(5px);
  -moz-filter: blur(5px);
  -o-filter: blur(5px);
  -ms-filter: blur(5px);
  filter: blur(5px);
}
<div class="content">
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
</div>
P粉270842688

Découvrez ce Cahier.

Vous devrez utiliser deux conteneurs différents, un pour l'image d'arrière-plan et un autre pour le contenu.

Dans l'exemple, j'ai créé deux conteneurs, .background-image.content.

Ils utilisent tous la valeur position: fixedleft: 0; right: 0;进行定位。它们显示的差异来自于为元素设置的不同z-index.

.background-image {
  position: fixed;
  left: 0;
  right: 0;
  z-index: 1;
  display: block;
  background-image: url('https://i.imgur.com/lL6tQfy.png');
  width: 1200px;
  height: 800px;
  -webkit-filter: blur(5px);
  -moz-filter: blur(5px);
  -o-filter: blur(5px);
  -ms-filter: blur(5px);
  filter: blur(5px);
}

.content {
  position: fixed;
  left: 0;
  right: 0;
  z-index: 9999;
  margin-left: 20px;
  margin-right: 20px;
}
<div class="background-image"></div>
<div class="content">
  <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis aliquam erat in ante malesuada, facilisis semper nulla semper. Phasellus sapien neque, faucibus in malesuada quis, lacinia et libero. Sed sed turpis tellus. Etiam ac aliquam tortor, eleifend
    rhoncus metus. Ut turpis massa, sollicitudin sit amet molestie a, posuere sit amet nisl. Mauris tincidunt cursus posuere. Nam commodo libero quis lacus sodales, nec feugiat ante posuere. Donec pulvinar auctor commodo. Donec egestas diam ut mi adipiscing,
    quis lacinia mauris condimentum. Quisque quis odio venenatis, venenatis nisi a, vehicula ipsum. Etiam at nisl eu felis vulputate porta.</p>
  <p>Fusce ut placerat eros. Aliquam consequat in augue sed convallis. Donec orci urna, tincidunt vel dui at, elementum semper dolor. Donec tincidunt risus sed magna dictum, quis luctus metus volutpat. Donec accumsan et nunc vulputate accumsan. Vestibulum
    tempor, erat in mattis fringilla, elit urna ornare nunc, vel pretium elit sem quis orci. Vivamus condimentum dictum tempor. Nam at est ante. Sed lobortis et lorem in sagittis. In suscipit in est et vehicula.</p>
</div>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal