vue样式穿透无法生效

vue样式穿透无法生效

img


怎么操作可以让三个快捷菜单同时亮,试过了/deep/ ::deep >>> :deep()四种操作都不行,有哪位知道该怎么弄吗?非常感谢!

img

scoped 这个加了吗

可能类名找错了?在浏览器审查元素,直接修改试试

加大力度,再追加 !important

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这篇博客也许可以解决你的问题👉 :vue中使用/deep/失效的解决办法
  • 除此之外, 这篇博客: vue组件样式穿透/deep/ ::v-deep >>>区别中的 /deep/ 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    项目中用到了预处理器 scss 、sass、less 操作符 >>> 可能会因为无法编译而报错 。可以使用 /deep/
    但是vue-cli3可能会导致变异报错。这个时候用::v-deep

  • 以下回答来自chatgpt:

    回答:

    根据参考资料,使用/deep/、::v-deep、>>>、:deep()等方式都无法生效时,有可能是组件版本过低导致的问题。可以尝试更新以下相关组件的版本,同时也需要注意这两个组件的版本是搭配的,不要随意更改。如果仍无法解决问题,可以尝试其他版本解决方案。

    关于实现让三个快捷菜单同时显示为高亮状态的解决方案,可以尝试使用深度作用选择器,例如:

    .parent /deep/ .child {
      background-color: red;
    }
    

    其中.parent和.child是具体的父子组件名称和类名。使用深度作用选择器是一种较为简单的解决方案,但同时也需要注意其对性能的影响。

    另外,还可以尝试通过维护一个状态来实现菜单的高亮显示。例如,定义一个menuActiveIndex变量来存储当前激活的菜单的索引,然后在三个快捷菜单中设置点击事件,在事件中更新menuActiveIndex的值。接着,可以在模板中通过动态绑定class的方式将激活的菜单设置为高亮状态,例如:

    <div class="menu" :class="{ 'active': menuActiveIndex === 0 }" @click="menuActiveIndex = 0">菜单1</div>
    <div class="menu" :class="{ 'active': menuActiveIndex === 1 }" @click="menuActiveIndex = 1">菜单2</div>
    <div class="menu" :class="{ 'active': menuActiveIndex === 2 }" @click="menuActiveIndex = 2">菜单3</div>
    

    上面的代码中,active是高亮状态的类名,menuActiveIndex是存储激活菜单索引的变量。当点击某个菜单时,设置menuActiveIndex的值,然后根据menuActiveIndex的值动态绑定菜单的样式。

    以上是两种解决方案,可以根据具体情况选择合适的方式实现菜单的高亮显示。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^