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

当元素的子元素聚焦时如何修改该元素的同级兄弟元素样式

输入框聚焦时修改分隔符颜色的实现方案

核心思路

利用CSS的:focus-within伪类:当父元素内部有任意元素处于聚焦状态时,该父元素会触发:focus-within状态,配合相邻兄弟选择器+即可选中后续的分隔符元素修改样式。

代码实现

纯CSS方案(推荐,兼容性支持Chrome 60+、Firefox 52+、Safari 10.1+)

你之前的写法逻辑正确,仅需调整对应样式属性即可,更推荐使用明确的类名选择器提升可读性:

.searchBarFirstDiv:focus-within + .seperator {
  /* 替换为你需要的分隔符颜色即可 */
  background-color: #2385bb;
  /* 可按需添加其他样式调整,比如修改高度、透明度、过渡效果等 */
  transition: background-color 0.2s ease;
}

注意:你当前用的是CSS Modules写法(className绑定css变量),直接把上述代码写入对应的.module.css文件即可,类名会自动完成映射,无需额外修改HTML结构。

兼容旧浏览器的JS辅助方案

如果需要兼容IE等不支持:focus-within的浏览器,可以通过监听输入框的聚焦失焦事件实现:

// 获取对应DOM元素
const searchInput = document.getElementById('location-search-input');
const seperator = document.querySelector(`.${css.seperator}`);
// 聚焦时添加激活类
searchInput.addEventListener('focus', () => {
  seperator.classList.add('seperator-active');
});
// 失焦时移除激活类
searchInput.addEventListener('blur', () => {
  seperator.classList.remove('seperator-active');
});

配套CSS:

.seperator-active {
  background-color: #2385bb;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 12:57:03