【问题标题】:When hovering on one link - change the style of all the other links悬停在一个链接上时 - 更改所有其他链接的样式
【发布时间】:2018-03-05 23:45:35
【问题描述】:

我有一个链接列表。当我悬停/关注其中一个时。我想更改未悬停的链接的样式。

HTML

<nav>
<ul>
    <li><a href="#">Link</a></li>
    <li><a href="#">Link</a></li>
    <li><a href="#">Link</a></li>
    <li><a href="#">Link</a></li>
    <li><a href="#">Link</a></li>
    <li><a href="#">Link</a></li> 
</ul>
</nav>

CSS

li {
list-style: none;
    display: inline-block;
}
a {
color: black;
text-decoration: none;
padding: 15px;
opacity: 1;
}

a:hover {
color: black;
}

a:hover li a {
opacity: 0.5
}

这通常可以改变不同元素的样式,但这种逻辑似乎不适用于链接。

提前谢谢你

【问题讨论】:

  • 你的 &lt;li&gt; 元素应该被包裹在一个 &lt;ul&gt; 父元素中。否则,这是无效的 HTML。

标签: css hover


【解决方案1】:

使用nav:hover a为所有链接添加效果。

使用nav li a:hover将效果添加到单个链接

如 cmets 中所述,您的 HTML 无效。 &lt;li&gt; 必须是 &lt;ul&gt;&lt;ol&gt; 的子级。

ul {
  padding: 0;
}

li {
  list-style: none;
  display: inline-block;
}

a {
  color: black;
  text-decoration: none;
  padding: 15px;
  opacity: 1;
}

nav:hover a {
  opacity: .5;
}

nav li a:hover {
  opacity: 1;
}
<nav>
  <ul>
    <li><a href="#">Link</a></li>
    <li><a href="#">Link</a></li>
    <li><a href="#">Link</a></li>
    <li><a href="#">Link</a></li>
    <li><a href="#">Link</a></li>
    <li><a href="#">Link</a></li>
  </ul>
</nav>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-30
    • 1970-01-01
    • 1970-01-01
    • 2017-12-30
    • 2014-03-28
    • 2021-09-20
    • 2015-08-05
    • 2012-09-07
    相关资源
    最近更新 更多