私は、マテリアライズCSSフレームワークのイメージカードに透明グラデーションをオーバーレイしようとしています。私がオンラインで見つけたコンセンサスは、img
タグをdiv
に置き、前記div
に勾配バックグラウンドを適用することによって容易に達成されるべきであることを示唆している。次に、img
タグのz-index
をグラデーションの後ろに移動するだけでオーバーレイされます。マテリアライズカードの透明なグラデーションオーバーレイ画像
しかし、私はこのアプローチでいくつかの問題に取り組んでいます。何らかの理由で、オーバーレイに透明性がないように見えます。その意味は、グラデーションのみが背後の画像ではなく、見えるということです。私はそれがマテリアライズのフレームワークとは何かを前提にしていますが、私はそれを回避する方法がいくつかありますか?
HTML:
<div class="row">
<div class="col s12 m4 l3">
<div class="card hoverable">
<div class="card-image postergrad">
<div class="postergrad">
<img class="poster" src="http://vignette2.wikia.nocookie.net/horrormovies/images/e/e1/28-Days-Later-Posters.jpg">
</div>
<span class="card-title">28 Days Later</span>
</div>
<div class="card-content">
<p>Lorem ipsum...</p>
</div>
<div class="card-action">
<a href="#">This is a link</a>
</div>
</div>
</div>
</div>
CSS:
.postergrad {
background: -moz-linear-gradient(top, rgba(0,0,0,0) 0%, rgba(0,0,0,0.65) 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(0,0,0,0.65)), color-stop(100%,rgba(0,0,0,0))); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(top, rgba(0,0,0,0) 0%,rgba(0,0,0,0.65) 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(top, rgba(0,0,0,0) 0%,rgba(0,0,0,0.65) 100%); /* Opera 11.10+ */
background: -ms-linear-gradient(top, rgba(0,0,0,0) 0%,rgba(0,0,0,0.65) 100%); /* IE10+ */
background: linear-gradient(to bottom, rgba(0,0,0,0) 0%,rgba(0,0,0,0.65) 100%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#a6000000', endColorstr='#00000000',GradientType=0); /* IE6-9 */
}
.poster {
position:relative;
z-index:-1;
display:block;
}
画像は勾配DIVの子であり、これは、所望の効果を達成することが可能な方法ではありません。 opacityに画像をより高いzIndexに置き、不透明度を与える場合にのみ、これは機能します。 それ以外の場合は、グラデーションを 'div.postergrad'の' :: after'に置くようにCSSを変更し、 'content: ''、' position:absolute'を与え、イメージの上にオーバーレイを配置することができます。 – Ardian