悬停时转换,除非将鼠标悬停在某个元素上

时间:2013-01-02 08:25:28

标签: css css-transitions transition transitions

我有一个看起来像这样的元素:

 ___
|  X|
 ‾‾‾ 

所以基本上是一个带有按钮的小盒子。

我还在元素中应用了CSS,所以当它悬停时,它会变成这样的东西:

 ___________________
|                  X|
 ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾

简单地说,它会变得更宽。

现在。我想要做的是,只要用户将鼠标悬停在关闭按钮(X)上,该框就不会改变其大小 但是当用户在盒子上的任何其他位置上徘徊时,它的行为就像建议的那样。

这可以用纯CSS吗?

编辑:很抱歉我添加的很晚,但答案应该基于这个例子:http://jsfiddle.net/fpY34

3 个答案:

答案 0 :(得分:3)

使用你拥有的标记,我不知道如何在没有固定宽度的情况下做到这一点,以及绝对的肮脏。但是这是我全力以赴! http://jsfiddle.net/fpY34/15/

<div id='outer'>
    <div id='notOuter'>
        <div id='content'>
            <div id='img'>
            </div>
            <div id='label'>
                Text example
            </div>
            <div id='closeButton'>
                X
            </div>
        </div>
    </div>
</div>​

和美女:

#outer { height: 30px; }
#notOuter {}
#content { float: left; position: relative; }
#closeButton { background: #0f0; position: absolute; top: 0; left: 30px; width: 30px; height: 30px;} 
#img { background: #f0f; width: 30px; height: 30px; position: absolute; left: 0; top: 0; }
#label { display: none; position: absolute; left: 0; top: 0; width: 60px; height: 30px; background: #f00; }
#img:hover { width: 60px; z-index: 10; }
#img:hover + #label,
#label:hover { display: block; z-index: 20; }
#img:hover ~ #closeButton,
#label:hover + #closeButton { left: 60px; }

答案 1 :(得分:0)

请你检查一下,告诉我你想要的是什么吗?

http://jsfiddle.net/UjPtv/10/

<style>
        .divs
        {
            height: 20px;
            width: 100px;
            border: 1px solid;
            padding: 5px 3px;
        }
         .divs:hover
        {

            width: 50px;
            padding-left: 150px

        }
    </style>
    <div class="divs"><span>X</span></div>​

答案 2 :(得分:0)

你可以浮动它们:

<div class="box">
    <div>
      Content
    </div>
    <span>X</span>
</div>​​​​​​​

.box {display:inline-block;border:1px solid black}
.box div {width:100px;float:left}
.box div:hover {width:200px}
.box span {float:left}​

但可能无法在旧版浏览器中使用。