Show div when hover another div using only css

前端 未结 3 1737
野性不改
野性不改 2020-12-09 16:39

I have searched the web for this one but didn\'t find anything similar.

Say we have div A and div B. When hover on div A, div b should be visible ON (should look lik

相关标签:
3条回答
  • 2020-12-09 17:15

    This will work, but only if the two divs are adjacent and b follows a.

    #a:hover + #b {
        background: #f00
    }
    
    <div id="a">Div A</div>
    <div id="b">Div B</div>
    

    If you have divs in between use ~

    #a:hover ~ #b {
        background: #f00
    }
    
    <div id="a">Div A</div>
    <div id="c">Div C</div>
    <div id="b">Div B</div>
    

    To go the other way around, unfortunately you will need Javascript

    // 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', '')}
    );
    

    Full fiddle http://jsfiddle.net/p7hLL/5/

    0 讨论(0)
  • 2020-12-09 17:16

    Its works, but your css should be like this

    <style>
    #b{display:none;}
    div#a:hover div#b{display:inline}
    </style>
    
    0 讨论(0)
  • 2020-12-09 17:17

    If you don't want to use the selector + or ~ which aren't compatible with some browsers, it is just possible if the <div /> to show (e.g. div#b) is a child of the <div /> to hover (e.g. div#a).

    <div id="a">
        <div id="b"></div>
    </div>
    
    <style>
        div#b {
            display: none;
        }
    
        div#a:hover div#b {
            display: block;
        }
    </style>
    
    0 讨论(0)
提交回复
热议问题