css | class中 ‘.‘ 和 ‘:‘ 的使用 | 如,何时用 &.is-selected{ ... } 何时用 &:hover{...}?

省流总结:交互时的短暂视觉反馈 → 用 :hover**,状态需要记录或切换 → 用类名如** .is-selected。

🧠 本质区别:

写法 触发方式 用途
&.is-selected 依赖 class 切换 需要 JavaScript 控制状态,如选中、激活
&:hover 鼠标悬停自动触发 一般用于交互反馈,比如按钮悬停变色

问题:为何有时候使用 &.is-selected{ color:var(xxx); font-weight: 700; } 有时候使用**&:hover{** background-color:var(xxx); }

解决:

&.is-xxxx是 用于状态类的显式控制(如点击后加类名)------》持久状态------》需要 js/class 控制状态

&:hover{ ... } 用于交互状态控制(鼠标悬停、点击等)------》自动发生 ,临时状态------》交互反馈

CSS 预处理器(如 SCSS、Less)中的嵌套写法 和 选择器的语义区别。

我们来详细解释:


详解

🔹 &.is-selected { ... } 是什么?

这是写在一个组件的样式中,意思是:

当前元素拥有 is-selected 这个类名时,应用对应样式。

bash 复制代码
.vk-select__menu-item {
  color: #333;

  &.is-selected {
    color: var(--primary);
    font-weight: 700;
  }
}

它会编译成:

bash 复制代码
.vk-select__menu-item.is-selected {
  color: var(--primary);
  font-weight: 700;
}

✔️ 用于"状态类"的显式控制(比如点击后加类名)


🔸 &:hover { ... } 是什么?

这是用于伪类选择器,表示当前元素被鼠标悬停时。

bash 复制代码
.vk-select__menu-item {
  &:hover {
    background-color: var(--hover-bg);
  }
}

它会编译成:

bash 复制代码
.vk-select__menu-item:hover {
  background-color: var(--hover-bg);
}

✔️ 用于交互状态控制(鼠标悬浮、点击等)


🎯 应用场景对比举例:

1. 下拉选项组件:

bash 复制代码
.vk-select__menu-item {
  &:hover {
    background-color: #f0f0f0; // 鼠标悬停反馈
  }

  &.is-selected {
    color: var(--primary-color);  // 被选中项加颜色高亮
    font-weight: bold;
  }
}
  • :hover 用于交互反馈,自动发生

  • .is-selected 用于记录状态持久性,比如用户点了某一项


✅ 总结记忆口诀:

:hover 是临时状态
.is-selected 是持久状态(通过 JS/class 控制)

两者经常配合使用:先 hover 提示,点击后选中变样式。

相关推荐
IT_陈寒17 分钟前
当Java的hashCode遇上Lombok,我的缓存被全清了
前端·人工智能·后端
工控丫丫44 分钟前
帆软看板中经常使用的公式函数及经常搭的组合
前端·javascript·数据库
jerrywus1 小时前
我用 GPT-6.1-sol 做了台会讲解的 3D 售货机:60 罐饮料,一口没喝上
前端·agent·claude
孟陬2 小时前
Foobar 技术周刊#159:当看不懂代码时,如何高效排障调试。脏页陷阱:一条只读查询,写入数 TB 数据。推测解码:大模型加速利器
前端·人工智能·后端
Zhao-Jichao2 小时前
AI Prompting for Everyone 课程笔记 - P17 图像生成 Imaging Generation
前端
Highcharts.js3 小时前
智能数据分析组件Orbit 正式发布与快速上手体验教程
前端·人工智能·信息可视化·数据分析系统·highcharts·orbit·智能可视化
螺丝钉tina4 小时前
[Playwright ][16]Playwright + TypeScript API 自动化测试实战:API测试
前端·javascript·typescript
小天源5 小时前
智叟云集系统 · 架构与职责分层
服务器·前端·数据库
Highcharts.js6 小时前
React 中原生支持使用 JSX 组件配置自定义表格 Highcharts Grid
前端·javascript·react.js·前端框架·jsx·highcharts·自定义表格
薛定谔的猫-菜鸟程序员6 小时前
Electron开发超详细教程(从入门到放弃)
前端·javascript·electron