You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现鼠标hover某元素时,其余元素opacity降至0.5?

实现hover单个.service-item时其余元素半透明的方案

要达成你要的交互效果,核心思路是利用父容器的hover状态批量控制子元素,再单独恢复当前hover元素的样式,具体修改步骤如下:


1. 确保所有.service-item有共同父容器

首先需要给所有.service-item套一个父容器(比如类名设为.service-container),这是实现兄弟元素交互的前提——CSS无法直接选择「除当前hover元素外的所有兄弟元素」,必须借助父容器来实现批量控制。

2. 修改CSS代码

替换原有代码为以下内容:

/* 父容器hover时,让所有子元素半透明 */
.service-container:hover .service-item {
    opacity: 0.5;
}

/* 单独恢复当前hover的.service-item样式 */
.service-container .service-item:hover {
    opacity: 1;
    box-shadow: 0 10px 28px 0 rgba(0, 0, 0, 0.1), 0 6px 10px 0 rgba(0, 0, 0, 0.0);
}

/* 保留基础样式,删除重复的border设置 */
.service-item {
    padding: 50px 30px 40px;
    border: 1px solid rgb(247, 241, 241);
    cursor: pointer;
    transition: all .4s;
}

3. 逻辑说明

  • 当鼠标移入父容器.service-container时,所有子元素.service-item的opacity会被统一设为0.5;
  • 当前被hover的.service-item会通过更具体的选择器优先级,把自身opacity恢复为1,同时保留原有的阴影效果;
  • 原代码中.service-item:hover的border设置和默认状态重复,直接删除即可减少冗余。

内容的提问来源于stack exchange,提问作者constobidullah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 16:12:37