検索ページの背景画像として使用しているJPEGファイルがあるのですが、Backbone.jsのコンテキスト内で作業しているため、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);
とすると、背景だけではなく、ページ全体にスタイルが適用されてしまいます。画像だけを選択して、その画像にフィルタを適用する方法はありませんか?あるいは、ページ上の他のすべての要素のぼかしをオフにする方法はありますか?
このペンをチェックしてみてください。
1つは背景画像用、もう1つはコンテンツ用と、2つの異なるコンテナを使用する必要があります。
この例では、.background-image
と.content
という2つのコンテナを作成しています。
どちらもposition: fixed
、left: 0; right: 0;
で配置しています。これらの表示の違いは、要素に別々に設定されている z-index
の値に起因しています。
.background-image {
position: fixed;
left: 0;
right: 0;
z-index: 1;
display: block;
background-image: url('http://666a658c624a3c03a6b2-25cda059d975d2f318c03e90bcf17c40.r92.cf1.rackcdn.com/unsplash_527bf56961712_1.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>
Lorem Ipsum*な文章で申し訳ありません。
Matthew Wilcoxson](https://stackoverflow.com/users/266375/matthew-wilcoxson)による .content:before
を使ったより良い実装に感謝します http://codepen.io/akademy/pen/FlkzB