2013-01-17 21 views
12

का उपयोग करके दूसरे div को होवर करें, मैंने इस के लिए वेब खोजा है लेकिन मुझे कुछ भी नहीं मिला है।div को दिखाएं जब केवल एक सीएसएस

कहें कि हमारे पास div ए और div B. है, जब div A पर होवर होता है, div b को प्रकट होना चाहिए (ओवरराइटिंग जैसा दिखना चाहिए) div A और नीचे नहीं रखा गया है।

यह div एक का केवल सामग्री की तरह दिखाई देनी चाहिए div बी की सामग्री के लिए बदल गया है

यह कैसे शुद्ध सीएसएस और एचटीएमएल में किया जा सकता?

#container > div { 
    display: none 
} 
#container > div:first-child { 
    display: block 
} 
#container > div:hover + div { 
    display: block 

<div id="container"> 
    <div>A</div> 
    <div>B</div> 
</div> 
+1

की तरह होना चाहिए कि आप किसी भी कोड है या HTML आप प्रश्न में शामिल कर सकते हैं क्या? यह हमेशा सहायक होता है। शुद्ध सीएसएस में –

+0

यह केवल तभी संभव है जब div B div A. –

+0

@ सेवन बिएडर का बच्चा है, यह कथन गलत है, यह एक भाई भी हो सकता है। – feeela

उत्तर

22

यह काम करेंगे, लेकिन केवल अगर दो divs निकट हैं और ख एक प्रकार है।

#a:hover + #b { 
    background: #f00 
} 

<div id="a">Div A</div> 
<div id="b">Div B</div> 

आप उपयोग के बीच ~

#a:hover ~ #b { 
    background: #f00 
} 

<div id="a">Div A</div> 
<div id="c">Div C</div> 
<div id="b">Div B</div> 

में divs है, तो दूसरी तरह के आसपास जाने के लिए, दुर्भाग्य से आप की आवश्यकता होगी जावास्क्रिप्ट

// Pure Javascript 
document.getElementById('b').onmouseover = function(){ 
    document.getElementById('a').style.backgroundColor = '#f00'; 
} 
document.getElementById('b').onmouseout = function(){ 
    document.getElementById('a').style.backgroundColor = ''; 
} 

// jQuery 
$('#b').hover(
    function(){$('#a').css('background', '#F00')}, 
    function(){$('#a').css('background', '')} 
); 

पूर्ण बेला http://jsfiddle.net/p7hLL/5/

+3

ओएमएफजी यह काम करता है http://jsfiddle.net/_b1_/p7hLL/ – nk9

+0

यह डिव बी के पृष्ठभूमि रंग को बदल रहा है जब Div A होवर है। Div A Div Div पर दिखाता है जब Div A होवर होता है? –

+0

@ एम.ईएल-सेट अकेले सीएसएस का उपयोग करके राउंड संभव नहीं है। – feeela

11

यह है बस संभव है यदि <div /> दिखाने के लिए वें का बच्चा है e <div /> होवर करने के लिए। यह ठीक है, अगर आप चयनकर्ता + या ~ का उपयोग नहीं करना चाहते हैं जो ब्राउज़र-संगत नहीं है।

<div id="a"> 
    <div id="b"></div> 
</div> 

<style> 
    div#b { 
     display: none; 
    } 

    div#a:hover div#b { 
     display: block; 
    } 
</style> 
+0

"यह केवल तभी संभव है जब डीआईवी बच्चा हो" यह गलत है। अन्य कामकाजी समाधान भी हैं, उदाहरण के लिए @PassKit से एक। – feeela

+0

@feeela मेरी वाक्य पढ़ने पर जाएं, मैंने कुछ मिनट पहले अपडेट किया था – algorhythm

+1

"बिल्कुल ब्राउज़र-अनुकूल नहीं" अभी भी गलत है। यह वास्तव में आईई 6 द्वारा समर्थित नहीं है। वास्तव में सामान्य भाई चयनकर्ता व्यापक रूप से समर्थित है और इसमें कोई ज्ञात त्रुटियां नहीं हैं। कृपया https://developer.mozilla.org/en-US/docs/CSS/Adjacent_sibling_selectors और https://developer.mozilla.org/en-US/docs/CSS/General_sibling_selectors – feeela

2
इसका काम करता है

, लेकिन अपने सीएसएस इस

<style> 
#b{display:none;} 
div#a:hover div#b{display:inline} 
</style> 
संबंधित मुद्दे