2012-03-23 12 views
13

Başlık, temel olarak her şeyi açıklıyor. Diğeri her durumda aynı kalır, ama yine de dört ilan ediliyor -Vurguluda birden fazla arka plandan sadece birini değiştir

#element { 
    background: url(image.png) no-repeat center center, 
       linear-gradient(to top, #86a53c, #516520); 
} 

#element:hover { 
    background: url(image.png) no-repeat center center, 
       linear-gradient(to top, #A0C153, #516520); 
} 

#element:active { 
    background: url(image.png) no-repeat center center, 
       linear-gradient(to top, #516520, #A0C153); 
} 

Gördüğünüz gibi, arka plan resimleri değişikliklerin tek: Burada


bir örnek
kez!

Yani, yalnızca arka planlardan birini değiştirmek mümkün, ama diğerini olduğu gibi tekrar tekrar bildirmek zorunda kalmadan bırakmak mümkün mü?

Diğer CSS arka plan özelliklerinin (tekrarlama, konum vb.) Ayrı ayrı ayarlanabileceğini biliyorum. Bu sadece hızlı bir örnektir.

+2

Bir cevap duygu olacak hayal kırıklığı ... –

+0

iyi soru, ama muhtemelen hiçbir –

+0

var @ WesleyMurch - artık değil. Cevabımı gör. –

cevap

1

Bu CSS değişkenlerle artık mümkün:

#element { 
    --gradient: linear-gradient(to top, #86a53c, #516520); 

    background: url(image.png) no-repeat center center, 
       var(--gradient); 
} 

#element:hover { 
    --gradient: linear-gradient(to top, #A0C153, #516520); 
} 

eylem buradan bakınız: https://jsfiddle.net/22zu6oaq/

+0

Evet, ve bununla ilgili en iyi şey, daha önce önceden dile getirdiğim endişeler karşısında "sintaks ve kaskat açısından nasıl oynanacağını" doğru uçurmasıdır. [İşte] (http://stackoverflow.com/questions/40010597/how-do-i-apply-opacity-to-a-css-color-variable/41265350#41265350) daha da çılgın bir örnek. – BoltClock

5

Hayır, hayır, henüz yapabiliriz. Bu size önerebileceğiniz bir ek gibi geliyor, ancak sözdizimi ve kaskat açısından nasıl oynanacağından emin değilim.

+0

Sözdiziminin ne olabileceğini hayal bile edemiyorum. İlk etapta çoklu arka planlar kullanacak olanlardan oldukça kıskanıyordum, hala IE7 desteğine bağlıyım. Aşamalı geliştirme? Elbette, müşteriye bunu anlatmayı dene. –

+0

Hayal kırıklığı, en azını söylemek. Sözdizimi için: neden dizi benzeri bir sayı kullanmıyorsunuz? Örneğin, 'background-image-1', 'background-image-2' vb. Bu, 'box-shadow' veya birden fazla değer alan başka herhangi bir CSS özelliği için de yararlı olacaktır. Kaskad gelince: Ben hiçbir sorun görmüyorum. Neden [IE'nin arkaplan-pozisyonu-x' & 'background-position-y'] (http://snook.ca/archives/html_and_css/background-position-x-y) 'den farklı olmalısın? –

+1

Dört arkaplandaki üçüncü arka planın konumunu değiştirmek için 'background-position:,, -20px,' gibi bir sözdizimi olsaydı memnun olurdum. – Pioul

İlgili konular