2010-10-01 116 views
1

,如果我有以下几点:CSS的锚标记上

<div class="linkSet"><a href="#" class="main_link">link one a</a><a href="#" class="sub_link">link one b</a></div> 

如何设置的CSS所以如果我将鼠标悬停在第一个,它改变了两个锚标签背景颜色?

回答

7
.main_link:hover, 
.main_link:hover + .sub_link { 
    background-color: red; 
} 

但是以下几点:

<a> 
    <span class="main">...</span> 
    <span class="sub">...</span> 
</a> 

会给你:

  • 更好的结构(两个环节去同一个地方是形式普遍较差,因为有许多相互作用(Tab键,屏幕阅读器等),在那里他们被视为单独的链接,即使你的风格,他们不这样)
  • 更好的支持(略旧版本的MSIE不支持+
  • 具有第一个链接改变颜色,当第二连杆徘徊(+仅适用于下一个,没有以前)。

如果链接到不同的地方,那么这是不是真的,但让他们紧挨着对方,让他们都有当一个人徘徊悬停效果真的是敌对的用户,因为它有力地表明,他们是这样。

+1

Ooooh,很好!哪些浏览器可以/不可以使用? – 2010-10-01 15:46:39

+0

旧版本的IE。我**认为**支持邻居兄弟选择器在IE7中添加,但我不会发誓。 – Quentin 2010-10-01 15:48:30

+0

我不能使用这种技术,因为这意味着两个链接最终指向同一个地方。在我的页面上,每行有2个链接,1个链接是向数据库添加内容,另一个链接是从数据库中删除某些内容,这两个链接都与链接对所在的行相关。 – oshirowanen 2010-10-04 09:43:08

0
a.main_link:hover, a.sub_link:hover { 
    background-color: red; 
} 
+0

当然,这不起作用?当你单独悬停在那一个上面时,它会将其中一个变成红色。 – chigley 2010-10-01 15:47:54

+0

@chigley,很好的电话。我的错。 – kafuchau 2010-10-01 15:48:54

1

如果你有

<a href="first.html">Link Part A</a> <a href="second.html">Part B</a> 

这个CSS将突出两当“连接部提供的”悬停,只有当“B部分”悬停第二。

a:hover, a:hover + a { 
    background-color: #fff0f0; 
} 

基本相同,大卫的,但没有使用类 - 有与旧IE支持相邻兄弟选择的相同的问题。