vue3 RouterLink链接颜色修改的方法

方案 1:正确穿透写法(最简推荐)

:deep() 里面直接写子元素,外层 .nav 自带 scoped 标识,不用放进 deep 里

css 复制代码
/* 正确:外层.nav自带data-v,deep只写内部a */
.nav :deep(a) {
  color: #333;
  text-decoration: none;
}
.nav :deep(a:hover) {
  color: #6381a0;
}
.nav :deep(a.router-link-active) {
  color: #2baa95;
  font-weight: bold;
}
.nav :deep(a.router-link-exact-active) {
  color: #3fa531;
}
html 复制代码
<RouterLink to="/" class="nav-link">
  <div class="item">xxx</div>
</RouterLink>
css 复制代码
.nav :deep(.nav-link) {
  color: #333;
  text-decoration: none;
}
.nav :deep(.nav-link:hover) {
  color: #6381a0;
}
.nav :deep(.nav-link.router-link-active) {
  color: #2baa95;
}

方案 3:使用插槽完全脱离 a 标签控制(无穿透烦恼)

hmtl 复制代码
<RouterLink to="/" v-slot="{ navigate, isActive }">
  <div class="item" :class="{ active: isActive }" @click="navigate">
    <img src="@/assets/images/home.png"/>
    <span>首页</span>
  </div>
</RouterLink>

样式直接写,不需要 :deep

css 复制代码
.item {
  display: flex;
  align-items: center;
  color: #333;
  cursor: pointer;
  text-decoration: none;
}
.item:hover {
  color: #6381a0;
}
.item.active {
  color: #3fa531;
  font-weight: bold;
}
相关推荐
Richard.Wong1 小时前
Windows IIS 服务器部署 Vue3 前端项目详细流程
服务器·前端·windows
数据知道1 小时前
XSS 攻防全解:反射型、存储型、DOM 型实战演示
前端·安全·web安全·网络安全·xss
Nemo_XP1 小时前
C# gridlookupedit选中内容重复还原操作
服务器·前端·c#
大家的林语冰1 小时前
🎉 Vercel 官宣 Next 16.3 正式发布,GitHub 第一全栈框架再次进化!
前端·javascript·前端框架
不爱说话郭德纲2 小时前
我只给了 TRAE Work 一张差评截图,它最后却把自己的 P0 结论推翻了?
前端·后端·架构
用户938515635072 小时前
从 DOM 编程到声明式 UI:React useRef 与 useState 底层全解析
前端·javascript·react.js
kisshyshy2 小时前
前端路由进化史:从刷新白屏到SPA,手写一个Hash路由就懂了!
前端·javascript·react.js
Sterting3 小时前
第 8 节:表单 — 前端校验的第一道防线
前端·javascript
保加利亚的风3 小时前
Docker 学习文档(Mac + Docker Desktop 版)
前端·后端