【问题标题】:Hover element, show hover effect on parent elements siblings child悬停元素,在父元素兄弟姐妹子元素上显示悬停效果
【发布时间】:2013-12-07 01:27:12
【问题描述】:

现在让我们看看,不确定我的逻辑是否 100% 下降。

这就是我正在使用的(bootply 演示 here

<ul>
    <li class="row">
        <span class="category col-sm-2 highlight">Architecture</span> 
        <span class="title col-sm-4"><a href="#">Hello world!</a></span>
        <span class="publication col-sm-2 hidden-xs">Magazine</span>
        <span class="year col-sm-2 hidden-xs">2007</span>  
    </li>
    <li class="row">
        <span class="category col-sm-2 invisible">Architecture</span> 
        <span class="title col-sm-4"><a href="#">Keep them coming</a></span>
        <span class="publication col-sm-2 hidden-xs">Magazine</span>
        <span class="year col-sm-2 hidden-xs">2007</span>  
    </li>
    <li class="row">
        <span class="category col-sm-2 invisible">Architecture</span> 
        <span class="title col-sm-4"><a href="#">The other posts</a></span>
        <span class="publication col-sm-2 hidden-xs">Magazine</span>
        <span class="year col-sm-2 hidden-xs">2007</span>  
    </li>
    <li class="row">
        <span class="category col-sm-2">Cities</span> 
        <span class="title col-sm-4"><a href="#">Tezt</a></span>
        <span class="publication col-sm-2 hidden-xs">Magazine</span>
        <span class="year col-sm-2 hidden-xs">2007</span>  
    </li>
</ul>

这个想法是,当将 a 元素悬停在 span.title 中时,出版物和年份中的文本颜色会发生变化。我也在寻找一种方法来改变同类型的第一个span.category 的颜色(即悬停“另一个帖子”应该会改变第一个.rowspan.category 的颜色)。这可以通过纯 CSS 实现吗?

【问题讨论】:

  • 我怀疑。脚本需要与 css 一起使用。
  • 恐怕不仅仅是 CSS
  • 为什么不把鼠标悬停在li上,让css像:li:hover .title{...}, li:hover .category{...}
  • 当任何具有该类别的跨度悬停时,您是在这里寻找悬停Architecture 吗?
  • @user2549787 没错!

标签: html css hover css-selectors parent-child


【解决方案1】:

我明白你在这里想要做什么,在这种情况下,你可以使用下面的选择器.. 这样当li 悬停时,它也会将颜色应用于第一个span

.row:hover span:nth-of-type(1) {
   color: red;
}

我刚刚检查了您小提琴中的 DOM,我想更改其中的一些内容..

Demohover 一个 hello 并看到第一个 span 颜色会改变)

Demo 2(DOM 已更改)- 这只是一个总体思路,我已经为您提供了选择器,但无论如何这都需要 DOM 更改..


在您的代码中更改了Demo


再次根据您的评论,现在您可以突出显示所有 span 及其标题

ul li div.row:hover > span {
   color: red;
}

Final Demo

【讨论】:

  • +1 来自我,你将你的优点恢复到你应得的积极状态;) - @Mr.Alien
  • 让它“完美” - @BindiyaPatoliya
  • 是的,那是我 :) 他确实在悬停.title 元素时说过,现在第一个元素将始终在悬停.row 时更改,而不仅仅是在悬停.title 时更改。 IMO,这在 CSS 中是不可能的,因为你不能选择以前的兄弟姐妹。
  • 这真的很棒@Mr.Alien 非常感谢!哇,我没想到会有这么大的兴趣:)
  • @INT 如果您认为悬停标题将为所有相关行着色而不是答案是否定的,您不能......您可以一次突出显示一行
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-24
  • 1970-01-01
  • 2014-10-25
  • 2018-05-03
  • 1970-01-01
  • 2011-11-05
相关资源
最近更新 更多