【问题标题】:How to style all elements of the same type except the hovered one?除了悬停的元素,如何设置相同类型的所有元素?
【发布时间】:2019-10-21 00:39:40
【问题描述】:

我想设置一行包含四列的样式,以便将悬停后的不透明度更改为 0.5,但实际悬停的列的不透明度仍应为 1,因此基本上每个列都设置了样式,但悬停的列。

我试过这样的东西:

div.airsuspension-submenu div.row div:hover .nav-highlight:not(div.airsuspension-submenu div.row div .nav-highlight:hover) {
    opacity: 0.5;
}

所有悬停的div.row div 元素的不透明度应为 0.5,但悬停的 div.row div .nav-highlight 的不透明度仍应为 1

【问题讨论】:

    标签: css hover


    【解决方案1】:

    不使用 javascript 的最佳选择是将背景颜色应用于父容器,然后降低父容器悬停时对所有子容器的不透明度,然后增加悬停的特定元素的不透明度。

    .d-flex {
      display: flex;
      justify-content: space-around;
    }
    .d-flex:hover > div {
      opacity: 0.5;
    }
    .d-flex:hover > div:hover {
      opacity: 1;
    }
    
    .item {
      background: red;
      flex-grow: 1;
      padding: 1rem;
      transition: opacity 1s ease-in-out;
      color: white;
    }
    <div class="d-flex">
      <div class="item">item 1</div>
      <div class="item">item 2</div>
      <div class="item">item 3</div>
      <div class="item">item 4</div>
    </div>

    【讨论】:

    • 请注意——用户标记为 htmlcss,但您的答案包括 sass——如果 OP 不知道该语法,则此答案可能不是特别可读为他们...
    • 没错,把我的答案改成了css
    • sass 很好:) 非常感谢。它几乎完美,但如果没有悬停元素,它应该保持 100% 的不透明度
    • @MarcelH。 - 如果没有元素悬停,它应该保持 100% 的不透明度 - 我很确定这就是这个解决方案的行为方式——我将代码移到了 sn-p 中,这就是我的行为看到了,试试看……
    • 好的,我的错 - 有一个错字...非常感谢:)
    猜你喜欢
    • 2014-12-19
    • 2023-03-14
    • 1970-01-01
    • 2012-02-04
    • 2011-12-28
    • 1970-01-01
    • 2022-06-15
    相关资源
    最近更新 更多