首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用CSS突出显示悬停上的另一个元素

用CSS突出显示悬停上的另一个元素
EN

Stack Overflow用户
提问于 2015-05-19 09:38:40
回答 4查看 4.6K关注 0票数 3

我有一个HTML,如下所示:

代码语言:javascript
复制
<p>
    <a id="foo" href="#bar">FOO</a><br/>
    <a id="bar" href="#foo">BAR</a><br/>
</p>

现在我想在"FOO“盘旋时突出显示"BAR”,反之亦然。有什么方法可以在CSS3中实现这一点,还是我需要jQuery?

我试过这样做:

代码语言:javascript
复制
a#foo:hover ~ a[href="#foo"] {
    color:red;
    background-color:blue;
}
a#bar:hover ~ a[href="#bar"] {
    color:red;
    background-color:blue;
}

但是~运算符只向前工作,所以它对第一个环节很好,但对第二个环节却不起作用。

另见此处:http://jsfiddle.net/pw4q60Lk/

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-05-19 09:48:07

通常,CSS中没有以前的同级选择器,这是为了使它能够应用于文档的单个遍历。但在您的具体情况下,您可以采取以下方法:

代码语言:javascript
复制
p:hover a:not(:hover) {
    color: red;
    background-color: blue;
}

http://jsfiddle.net/pw4q60Lk/2/

...although --这确实依赖于完全填充父级的兄弟姐妹,因为在父节点上的任何悬停都会突出显示两个子节点。

或者,一种基于(jQuery)脚本的方法是:

代码语言:javascript
复制
$('a').hover(
    function() { $(this).siblings().addClass('highlight') },
    function() { $(this).siblings().removeClass('highlight') }
);

http://jsfiddle.net/pw4q60Lk/12/

票数 6
EN

Stack Overflow用户

发布于 2015-05-19 09:48:56

正如本帖子中所提到的,以前没有同级选择器。

在Jquery的帮助下,您可以使用mouseover()函数来实现它。

代码语言:javascript
复制
<p>
    <a id="foo" href="#bar">FOO</a><br/>
    <a id="bar" href="#foo">BAR</a><br/>
</p>

Jquery

代码语言:javascript
复制
$("#bar").hover(function(){
    $('#foo').css({'color':'red','background-color':'blue' });
});
$("#bar").mouseout(function(){
    $('#foo').css({'color':'blue','background-color':'white' });
});

$("#foo").hover(function(){
    $('#bar').css({'color':'red','background-color':'blue' });
});
$("#foo").mouseout(function(){
    $('#bar').css({'color':'blue','background-color':'white' });
});

小提琴在这里

票数 4
EN

Stack Overflow用户

发布于 2015-05-19 09:49:27

正如这些答案所提到的,没有纯粹的css选择器。

CSS:选择以前的兄弟姐妹

是否有“以前的兄弟”CSS选择器?

但是,有了jQuery,您可以做到

代码语言:javascript
复制
$('a').hover(function(){
    $('a').not(this).addClass('hovered');
},
function(){
    $('a').not(this).removeClass('hovered');
});

使用风格

代码语言:javascript
复制
.hovered{
    color:red;
    background-color:blue;
}

演示

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30321931

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档