2011-08-15 18 views
8

Ana resmin üzerine geldiğinizde küçük resimlerin şeffaf hale geldiği bir galeri yapıyorum. Bunu saf CSS ile gerçekleştirmek istiyorum, ancak bunun mümkün olup olmadığından emin değilim.Div'i etkileme: başka bir div ile gezdirin

CSS:

/* should affect thumbs but not main */ 
/* obviously this code wouldn't work */ 
#main:hover, #thumbs { 
    opacity: .5; 
} 

HTML:

<div id="main"> 
    Hover over me to change #thumbs 
</div> 
<div id="thumbs"> 
    I change when you hover over #main 
</div> 

saf CSS kullanarak bu mümkün mü? o, bu i onmouseover olayı kullanarak öneririm :) IE

çalışmayacak olsa bile

cevap

14

Tabii, sadece komşu kardeş seçiciyi kullanabilirsiniz: Burada

#div1:hover + #div2 { 
    ... 
} 

örneği: http://jsfiddle.net/6BfR6/94/

+2

+1 şaşırtıcı ... bunun olduğunu bile bilmiyordum! http://meyerweb.com/eric/articles/webrev/200007a.html – samccone

+0

Vay canına! Teşekkürler! Bu kesinlikle mükemmel! Benim üstümdeki adam gibi, var olan hiçbir fikrim yoktu. Mükemmel. – JacobTheDev

+0

+1 Javascript olmadan bunu yapabileceğiniz hakkında hiçbir fikrim yoktu. –

-1

ancak güzel bir sorudur ve birisi çapraz tarayıcı yapmanın çözümü vardır diye merak ediyorum via

+0

IE'de çalışmaya gerek yok, geri dönüşü nasıl yazacağımı biliyorum, ama bununla uğraşacağımı sanmıyorum. Daha çok kişisel bir site. – JacobTheDev

+0

@rev: Nightfirecat tarafından sağlanan çözüme bakın. Bu inanılmaz ve IE 7 & 8'de çalışıyor - Ben – mkk

+0

test ettim Bunu sadece CSS ile yapabilirsiniz. Benim [saf CSS sinyal çubuğu değerlendirme widget yanıtı] bölümüne bakın (http://stackoverflow.com/questions/4502633/how-to-affect-other-elements-when-a-div-is-hovered/32470900#32470900), Bu da, hanenin * göründüğü gibi görünebilen öğelerin stilini değiştirebileceğinizi gösterir. –

0

Sadece bir selektörün çocukları etkilenebilir. Aksi halde javascript kullanmanız gerekir. Örneğin

:

div:hover #childDiv { 
    background: green; 
} 
-1

seni bunun için bazı javascript ihtiyacımız olacak düşünüyorum.

+0

Bunu yalnızca CSS ile yapabilirsiniz. Benim [saf CSS sinyal çubuğu değerlendirme widget yanıtı] bölümüne bakın (http://stackoverflow.com/questions/4502633/how-to-affect-other-elements-when-a-div-is-hovered/32470900#32470900), Bu da, hanenin * göründüğü gibi görünebilen öğelerin stilini değiştirebileceğinizi gösterir. –

+0

ciddi? 4 yıl sonra aşağı çekmek? –

+0

Şimdi olduğu kadar yanlış. Az önce dün cevabın üzerinden geldim. Cevapları okunurken okuyabilecek bir moderatör değilim; Sadece bir web aramasından buraya giren rastgele bir kullanıcı. –

-1

Hayır. Javascript kullanmanız gerekir.

+0

Bunu yalnızca CSS ile yapabilirsiniz. Benim [saf CSS sinyal çubuğu değerlendirme widget yanıtı] bölümüne bakın (http://stackoverflow.com/questions/4502633/how-to-affect-other-elements-when-a-div-is-hovered/32470900#32470900), Bu da, hanenin * göründüğü gibi görünebilen öğelerin stilini değiştirebileceğinizi gösterir. –

0

# div1: hover + # DIV2 { ... }

IE 7, 8, 9 ve 10'da iyi çalışıyor. Herhangi bir JS'ye gerek yok veya onovermouse ve SADECE bir seçicinin çocukları etkilenemez.

"Nightfirecat" örneğinin bağlantısını deneyin.

İlgili konular