【问题标题】:Change content of div:before on mouse over another div is not working更改 div 的内容:鼠标悬停在另一个 div 上之前不起作用
【发布时间】:2014-05-11 07:41:36
【问题描述】:

我按照这个例子 https://stackoverflow.com/a/19122409/2761794

请查看这个 jsfiddle http://jsfiddle.net/rflfn/pZr3c/

HTML:

<!-- This Works -->
<div class='container'>Mouse Over Here!</div>
<div class='test'>
    <div class='text'></div>
</div>

<br />

<!-- This not Work -->
<div class="container1">
    <div class='container2'>Mouse Over Here2!</div>
</div>

<div class='test2'>
    <div class='text2'></div>
</div>

CSS:

/* This Works */
.test .text:before{
    content: 'Text2 Normal';
    color: red;
}
.container:hover ~ .test .text:before{
    content: 'Text2 Hover';
    color: green;
}

/* -------- */

.test2 .text2:before{
    content: 'Text2 Normal';
    color: red;
}

/* This not Work */
.container1 .container2:hover ~ .test2 .text2:before{
    content: 'Text2 Hover';
    color: green;
}

/* This not Works too */
/*.container2:hover ~ .test2 .text2:before{
    content: 'Text2 Hover';
    color: green;
}*/

第一个示例完美运行,但第二个示例不起作用。我需要将它与 div 内的 div 一起使用,但仅当 div div 不在另一个 div 内时才有效。怎么了?如果可能的话,我希望只使用 css 来做到这一点。

【问题讨论】:

    标签: html css


    【解决方案1】:
    .container1 .container2:hover ~ .test2 .text2:before
    

    它不起作用,因为.container2 不是.test2 的兄弟元素。它的父级.container1一个兄弟姐妹,因此以下方法可以工作:

    ~ 是一个通用的兄弟组合器 - 它只查看兄弟元素。)

    .container1:hover ~ .test2 .text2:before{
        content: 'Text2 Hover';
        color: green;
    }
    

    恐怕您尝试做的事情在纯 CSS 中是不可能的,因为您无法穿越 DOM 并且存在 no parent selectors。你需要 JS 来做到这一点。

    【讨论】:

    • 查看此尝试:jsfiddle.net/rflfn/pZr3c/1 小问题,查看其他:jsfiddle.net/rflfn/pZr3c/2 适用于标签正文,但不适用于任何其他标签...我尝试此:jsfiddle.net/rflfn/pZr3c/3 但不工作同样,如果没有办法用 CSS 做到这一点,您还有其他建议吗?
    • 在示例上完美运行,但不能满足我的需要,请查看:jsfiddle.net/rflfn/XLkRz 检查 css,我需要在鼠标悬停时更改文本和颜色,但不工作...跨度>
    • @rflfn 是的,它不起作用,因为 HTML 不同。这是一个 jQuery 解决方案 - jsfiddle.net/625cc
    • 感谢您的帮助!您的解决方案与 Jquery 完美配合,但我尽量不在我的主题中以任何方式使用任何 JS 代码,谢谢!我会在另一个场合保护它。
    猜你喜欢
    • 1970-01-01
    • 2019-07-30
    • 2015-03-21
    • 1970-01-01
    • 2014-06-17
    • 2015-09-12
    • 1970-01-01
    • 2013-04-01
    • 1970-01-01
    相关资源
    最近更新 更多