悬停第n个元素时如何将CSS应用于前n个元素

时间:2018-09-23 20:34:28

标签: html css

这是我从亚马逊询问的面试问题。 问题是使用HTML和CSS仅将鼠标悬停在第n个元素上时将某些CSS应用于前n个元素。 即 您的页面上有5个灰色的星星,当您将第4个星星悬停时,前4个星星会变为黄色,就像Amazon上的评分UI。

1 个答案:

答案 0 :(得分:1)

您可以将Flexbox与flex-direction: row-reversegeneral sibling combinator ~一起使用。兄弟姐妹选择器将影响悬停项目之后的所有兄弟姐妹,而反向的flexbox将在悬停项目之前显示它们。

.container {
  display: inline-flex;
  flex-direction: row-reverse;
  list-style: none;
}

.container li:hover, .container li:hover ~ li {
  color: red;
}
<ul class="container">
  <li>X</li>
  <li>X</li>
  <li>X</li>
  <li>X</li>
  <li>X</li>
</ul>