2016-12-13 8 views
1

私はサイトの背景イメージに線形グラデーションを使用しますが、イメージをランダム化したいので、私は少しのPHPロジックに振りかざす必要があります。CSSに追加する

以下を参照してください。

<div class="jumbotron hidden-xs hidden-sm" id="headerhome" style="background: -webkit-linear-gradient(rgba(166, 195, 206, 0.5), 
    rgba(166, 195, 206, 0.5)), 
    linear-gradient(
    to bottom, 
    rgba(64, 64, 64, 0) 70%, 
    rgba(77, 78, 94, 0.5) 80% 
    ), url('img/home/hero-img/hero-img-<?php echo $rand ?>.jpg'); 

    background: -o-linear-gradient(rgba(166, 195, 206, 0.5), 
    rgba(166, 195, 206, 0.5)), 
    url('img/home/hero-img/hero-img-<?php echo $rand ?>.jpg'); 

    background: -moz-linear-gradient(rgba(166, 195, 206, 0.5), 
rgba(166, 195, 206, 0.5)), 
    url('img/home/hero-img/hero-img-<?php echo $rand ?>.jpg'); 

    background: -linear-gradient(rgba(166, 195, 206, 0.5), 
rgba(166, 195, 206, 0.5)), 
    url('img/home/hero-img/hero-img-<?php echo $rand ?>.jpg'); 

    background-blend-mode: multiply;"> 

その後、インラインスタイルを持つURLのセグメントを追加し、CSSファイルでheaderhomeためのスタイリングを持ってする方法はあります。

本質的に私はこれを行うための比較的クリーンな方法を見つけようとしています。現在のコードが動作していても、私はそれが維持できないと言われています。

このように、単一のブラウザごとにグラデーションを定義する必要がありますか?

+0

これは非常にいい質問です。私は 'inherit'を使ってこれを実装しようとしていますが、今までは運がありません。 –

+0

さらに何か管理していれば、私はそれを再投稿します。 –

+0

これ以上管理できないと思います。私ができると思う唯一のことは、異なるクラスの異なる画像を(同じグラデーション、ベンダー接頭辞とともに)持ち、それらのクラスをPHPやJavaScriptを使ってランダムに切り替えることです。 –

答えて

0

before疑似要素に画像を割り当て、ブラウザのグラデーションセットプロパティごとに実装画像を取り除くことができます。

.container { 
 
    position:relative; 
 
    width:100px; 
 
    height:100px; 
 
} 
 
.container:after { 
 
    position:absolute; 
 
    left:0;right:0;top:0;bottom:0; 
 
    content: ""; 
 
    background: url('http://www.emtec-international.com/sites/default/files/sd4-2gb-largesize.png'); 
 
}
<div class="container" style="background: linear-gradient(red, yellow);"> 
 
</div>

+1

これは実際には別の方法です、私はバックグラウンド画像のURLはインラインスタイルとクラスのグラデーションでなければならないことを意味します。とにかく、これは 'background-blend-mode'を妥協するでしょう。私はOPがうまくいくかどうかわからない。 –

関連する問題