微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

html – 同一类的嵌套div,在悬停时显示child

我试图在其父母悬停时显示一个隐藏的div.
我的问题是有相同类的嵌套div,当我悬停一个“内部”div时,它的父元素也会悬停,并显示它们隐藏的子元素.
HTML
<div class="a_class">
    lorem ipsum
    <div class="inner">
        <a href="">hidden...</a>
    </div>
    <div class="b_class">
        blahblah<br />
        <div class="a_class">
            <div class="inner">
                <a href="">hidden...</a>
            </div>
            lorem ipsum
        </div>
    </div>
</div>

CSS:

.inner{display:none;}
.a_class:hover > .inner{display: block;}

小提琴:http://jsfiddle.net/Nb6tD/

换句话说,我试图实现这一点:当我将鼠标悬停在第二个.a_class上时,只有它下面的.inner应该显示,而不是“父”.a_class下的.inner.

它只能用css吗?

提前致谢

编辑:答案
因此,除非html标记发生变化,否则看起来不能用纯css完成 – 这在我的情况下是不可能的.
我希望有一个css3-magic解决方案,但由于没有这样的选择,我要去javascript.

我接受了最合适的解决方案,以备将来参考,因为那里有可能改变html结构.

解决方法

我不认为你可以在不改变html结构的情况下“修复”这个问题 – 你可以有一个包含可扩展区域及其相应按钮的元素:

在这里,我添加一个.hoverArea div. (最里面的一个不需要额外的div,因为它只包含一个.inner)

HTML

<div class="a_class">
    <div class="hoverArea">
        lorem ipsum
        <div class="inner">
            <a href="">hidden...</a>
        </div>
    </div>
    <div class="b_class">
        blahblah<br />
        <div class="a_class hoverArea">
            <div class="inner">
                <a href="">hidden...</a>
            </div>
            lorem ipsum
        </div>
    </div>
</div>

CSS

.hoverArea:hover > .inner{
    display: block;
}

演示于http://jsfiddle.net/Nb6tD/7/

原文地址:https://www.jb51.cc/html/242451.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐