1. ホーム
  2. css

[解決済み] 背景画像にCSSフィルタを適用する方法

2022-03-20 15:52:25

質問

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

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

CSS 3 のぼかしフィルタを適用したい のみ を背景に追加したいのですが、その1つの要素だけにスタイルを設定する方法がよくわかりません。試してみると

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

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

解決方法は?

こちらをご覧ください ペン .

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

この例では、2つのコンテナを作成しました。 .background-image.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.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>

のお詫び ロームイプサム のテキストが表示されます。

更新情報

感謝 マシュー・ウィルコクソン を使ったより良い実装のために .content::before https://codepen.io/akademy/pen/FlkzB