背景画像にCSSフィルターを適用する方法 質問する

背景画像にCSSフィルターを適用する方法 質問する

検索ページの背景画像として使用しているJPEGファイルがあり、CSSを使用して設定しています。バックボーンコンテキスト:

background-image: url("whatever.jpg");

CSS 3 ぼかしフィルターを背景にのみ適用したいのですが、その要素のみにスタイルを設定する方法がわかりません。次のようにします。

-webkit-filter: blur(5px);
-moz-filter: blur(5px);
-o-filter: blur(5px);
-ms-filter: blur(5px);
filter: blur(5px);

私の CSS のすぐ下ではbackground-image、背景だけでなくページ全体のスタイルが設定されています。画像だけを選択して、それにフィルターを適用する方法はありますか? あるいは、ページ上の他のすべての要素のぼかしをオフにする方法はありますか?

ベストアンサー1

背景画像用とコンテンツ用の 2 つの異なるコンテナーを使用する必要があります。

この例では、.background-imageと の2 つのコンテナーを作成しました.content

どちらも と で配置されます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.sstatic.net/CjzQS.jpg');
  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>

マシュー・ウィルコクソン.content::before2 番目の div を回避するために使用する推奨実装:https://codepen.io/akademy/pen/FlkzB

おすすめ記事