将鼠标悬停在不影响div的div上

时间:2014-09-08 22:27:33

标签: html css

我在CSS中为某些div创建了一些悬停条件。一,我测试过父母关系过渡(#play-field:hover#cont2),另一个我测试过自我过渡(#piccont2:hover),两者似乎都无法正常工作。我可以开始工作的唯一悬停是a:悬停。

是否会出现一般风格的东西阻止这些悬停过渡?或者我是否误解了如何制作一个可以挽救的div?

http://jsfiddle.net/t3s8hxcL/

a:hover {
    color:green;
}

html, body {
    font-size: 18px;
    color: white;
    font-family:'Oswald', sans-serif;
    margin: 0;
    padding: 0;
    overflow:hidden;
    height:100%;
    width:100%;
}

#header {
    height: 10vh;
    /*100 */
    background: #ed3144;
    /* ruby */
    text-align: right;
    position: relative;
    box-shadow: 0px 5px 3px black;
}

#footer {
    height: 13.5vh;
    /*100 */
    background: #181616;
    /* almost black */
    text-align: right;
    position: relative;
    top: -6vh;
    z-index: -1;
}

#above-footer {
    height: 3vh;
    background: #FFD700;
    position: relative;
    top: -13vh;
    z-index: 0;
}

#header-content {
    position:absolute;
    bottom:5px;
    right: 10px;
}

#dropbin {
    position: relative;
    text-align:center;
}

#dropbinbar {
    height:3.5vh;    
    /*35*/
    background: #181616;
    /* almost black */
    z-index: -3;
}

#bin {
    height: 6vh;
    /*60*/
    width: 13%;
    background: #635856;
    /*greyish*/
    z-index: -1;
    box-shadow: -5px 5px 3px #181616;
    text-align: center;
    float:left;
}

#bin-content {
    position:absolute;
    text-align: center;
    /*text-transform: uppercase;*/
    font-size: 30px;
    font-size: 1.5vw;
    font-weight: normal;
    bottom: .5vw;
    width: 100%;
}

#playing-field {
    height:73vh;
    /*865*/
    clear:both;
    overflow: hidden;
    position:relative;
    top: -6vh;
    z-index: -10;
}

#playing-field:hover #cont2 {
    height: 80%;
    background: #ed3144;
}

#piccont1 {   
    width: 200px;
    height: 200px;
    background-color: #ed3144;
    /* ruby */
    margin:0 auto;
    position: absolute;
    top: -webkit-calc(50% - 100px);
    top: -moz-calc(50% - 100px);
    top: -calc(50% - 100px);
    left: -webkit-calc(25% - 100px);
    left: -moz-calc(25% - 100px);
    left: -calc(25% - 100px);
    z-index: 0;
}

#piccont2 {
    width: 200px;
    height: 200px;
    background-color: black;
    margin: 0 auto;
    position: absolute;
    top: -webkit-calc(50% - 100px);
    top: -moz-calc(50% - 100px);
    top: -calc(50% - 100px);
    left: -webkit-calc(75% - 100px);
    left: -moz-calc(75% - 100px);
    left: -calc(75% - 100px);
    z-index: 0;
}

#cont1 {
    width: 50%;
    height: 100%;
    float: left;
    background: black;
    z-index: -4;
}

#cont2 {  
    width: 50%;
    height: 100%;
    float: right;
    background: #ed3144;
    z-index: -3;
}

#piccont2:hover :   
    -webkit-transform: translate(3em, 0);
    -moz-transform: translate(3em, 0);
    -o-transform: translate(3em, 0);
    -ms-transform: translate(3em, 0);
    left: -webkit-calc(50% - 100px);
    left: -moz-calc(50% - 100px);
    left: -calc(50% - 100px);
    background-color: #ed3144;
}

1 个答案:

答案 0 :(得分:3)

您正在使用负Z-indexing,几乎所有内容都放在Z-stack中body之后,这意味着各个元素上的hover行为永远不会被触发。您可以看到,如果您在#contX元素上点击“检查元素”,Chrome会选择<body>,因为这是它在该位置找到的第一个元素,自上而下。

不要使用低于0的Z值,除非你有充分的理由这样做,并且确切地知道后果,它是CSS的一个复杂部分。