CSS - 保持悬停状态“unhover”?

时间:2013-04-06 01:03:22

标签: css html hover transition

我有一行5个div,当你将鼠标悬停在一个div上时,它会填充屏幕的宽度。6 Multicolored Divs

蓝色div默认填充屏幕宽度;这样屏幕总是满的,当我将鼠标悬停在其他div上时,我可以应用css将其缩小,因为它在HTML中被声明为最后一个:

#green{
    width:20px;
}
#blue{
    width:100%;
}
#green:hover{
    width:100%
}
#green:hover ~ #blue{
    width:20px;   
}

有没有办法让一个div在“unhovered”之后保持打开状态?例如,如果橙色div已经打开并且鼠标离开它而不是另一个彩色div,它可以保持其全宽。目前,当鼠标滚动时,div会滑回蓝色。

另外,我可以在没有任何脚本的情况下这样做吗?

2 个答案:

答案 0 :(得分:0)

不,没有javascript就无法做到。但是这里有一些示例代码可以使用:

<div id="green" onmouseover="green()">foo</div>

<div id="blue" onmouseover="blue()">more foo</div>

<div id="pink" onmouseover="pink()">even more foo</div>

和脚本:

function green() {
    $('div').css('width','20px');
    $('#green').css('width','100%');
}

function blue() {
    $('div').css('width','20px');
    $('#blue').css('width','100%');
}

function pink() {
    $('div').css('width','20px');
    $('#pink').css('width','100%');
}

希望这有帮助!

答案 1 :(得分:0)

是的,您可以使用CSS动画在没有脚本的情况下执行此操作。见http://cdpn.io/GLjpK

它不像使用脚本那样可靠,但它有可能 - 甚至在悬停后保留它,这是一个具有挑战性的部分。