2012-02-24 67 views
5

私はいくつかの見出しがあり、それぞれの背景に同じグラデーションの色を表示したいが、異なる(反復しない)背景イメージを表示したい。バックグラウンドのグラデーションの色や背景の画像位置のCSSルールを複製しないようにしたいのは、それぞれの見出しで同じになるからです。つまり、個々の見出しに指定する必要があるのは、背景イメージファイルへのパスだけです。ここで 背景グラデーションの色と背景イメージDRYly

は私が現時点で持っているものです。

<h1 class="banner bgImage img1">background image 1</h1> 
<h1 class="banner bgImage img2">background image 2</h1> 
<h1 class="banner bgImage img3">background image 3</h1> 
<h1 class="banner">heading without background image</h1> 

.banner { 
    /* For old browsers that don't support gradients */ 
    background-color: #9FCC1D; 

    /* browser-specific prefixes omitted */ 
    background-image: linear-gradient(#75A319, #9FCC1D); 
    padding: 7px 7px 7px 15px; 
} 

/* Specifies position of background image */ 
.bgImage { 
    background-position: 5px 50%, 0 0; 
    background-repeat: no-repeat; 
    padding-left: 30px; 
} 

.img1 { 
    background-image: url(img1.png"), linear-gradient(#75A319, #9FCC1D); 
} 

.img2 { 
    background-image: url(img2.png"), linear-gradient(#75A319, #9FCC1D); 
} 

.img3 { 
    background-image: url(img3.png"), linear-gradient(#75A319, #9FCC1D); 
} 

私はそれはdoesnの

  • .imgXルールでlinear-gradientスタイルを繰り返す必要があり、この

    1. の問題点がいくつかありますChromeで正しくレンダリングされません。background-imagebackground-repeatというコンマで区切られたリストはサポートされていないようです。これは、クローム
    2. 私はCSSルールの重複を最小限に抑えながら、背景はChromeでレンダリングされている方法で問題を解決するにはどうすればよい

    enter image description here

    に表示されます何ですか?

  • +0

    私はChrome 17.0.963.56 m(-webkit-プレフィックスを使用)でうまく動作します – juanrpozo

    答えて

    5

    背景アイコンには疑似クラス:beforeを使用してください。

    .img1:before { 
        content: ''; 
        float: left; 
        position: relative; 
        background: transparent url('img1.png') left top no-repeat; 
        width: 16px; /* change to actual width of img */ 
        height: 16px; /* change to actual height of img */ 
    } 
    

    または、CSSの量を減らそうとしているため、グラデーションのクラスを指定してHTMLに追加することができます。

    +0

    各見出しに別の背景イメージを指定するだけであまりCSSを使う必要はないと思っています –

    +0

    グラデーションのクラスです。そのクラスをHTMLに追加します。 –

    +1

    http://jsfiddle.net/2Hcgn/ – juanrpozo

    4

    ドンには、この背景グラジェントを適用できる2つのクラス、bgImageおよびbannerがあります。これらのクラスの1つにグラデーションを適用し、そこから移動するだけです。また、画像URLの直後にrepeat-xを追加して、それが確実に繰り返されるようにしてください。