jquery - 如何处理这个 CSS 鼠标悬停问题?

标签 jquery html css

我有以下 HTML 结构?

<div id="content">

    <h3>some text</h3> <!--Another element having <h3> markup-->

    <div class="abc"> <!--This DIV does not have any id-->
        <div/>
        <h3>some text</h3>
    </div>
</div>

及以下CSS代码

#content h3:hover, #content .abc:hover
{
    background-color:#F0F0F0;
    background-image:url('/images/flag.gif');
    background-repeat:no-repeat;
    background-position:left center;
}

我面临的问题:

当我将鼠标悬停在<h3>时下<div id="content">然后它按照我的预期应用CSS。但是当我将鼠标悬停到<div class="abc">时然后它对 <div class="abc"> 应用 CSS以及 <h3> <div class="abc">下的元素。所以它在鼠标悬停时显示两个图像。

我可以控制这种行为吗?

意味着当我将鼠标悬停到 <h3> 时的<div class="abc">那么它应该只显示一张背景图像而不是两次?

我怎样才能实现这个目标?仅使用 CSS 还是必须使用 jQuery?

最佳答案

试试这个:

#content > h3:hover, #myOutput > .abc:hover

Here's a codepen.

您的代码使用后代选择器(只是一个空格),因此您告诉浏览器将悬停样式应用到作为 #content 后代的任何 h3 元素,其中包括两个 h3 元素。我此处的代码使用子组合器选择器 (>),它仅指定作为指定父级的直接后代的元素。

感到困惑吗? Read this.

关于jquery - 如何处理这个 CSS 鼠标悬停问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19651102/

相关文章:

javascript - 如何等待 _.each 循环与 ajax 调用完成?

javascript - Jquery检测具有相同ID的多个输入中的按键

html - 如何在悬停时创建像 Google +1 按钮这样的微光动画

html - 为什么 MDN 建议在视口(viewport)标签中使用 initial-scale=0.86 和 minimum-scale=0.86 来抑制水平滚动?

html - css链选择器

JavaScript 在展开和折叠时在 Accordion 上切换图标

html - 是否可以使用 CSS 拆分 HTML <table> 的行?

javascript - Bootstrap 日期选择器方向/放置

jquery - 悬停在对象上时获取对象的 "original"(非悬停)背景颜色

jquery - AJAX 多表单发布