Vue.js 样式 v-html 与作用域 css

标签 vue.js vue-loader

我如何使用 vue-loader 为 v-html 内容设置作用域 css 的样式?

简单的例子: 组件.vue

<template>
  <div class="icon" v-html="icon"></icon>
</template>
<script>
  export default {
    data () {
      return {icon: '<svg>...</svg>'}
    }
  }
</script>
<style scoped>
  .icon svg {
    fill: red;
  }
</style>

生成html <div data-v-9b8ff292="" class="icon"><svg>...</svg></div>

生成CSS .info svg[data-v-9b8ff292] { fill: red; }

如您所见,v-html 内容没有 data-v 属性,但生成的 css 具有 svg 的 data-v 属性。

我知道这是 vue-loader ( https://github.com/vuejs/vue-loader/issues/359 ) 的预期行为。并在本期中提到了后代选择器。但是正如您所看到的,我在我的 CSS 中使用了它,但它不起作用。

如何设置 v-html 内容的样式?

最佳答案

我正在使用 vue-loader 15.9.1>>> 解决方案对我不起作用(无效),而 /deep/ 方法导致构建错误......

以下是有效的方法:

.foo::v-deep .bar { 颜色:红色; }

关于Vue.js 样式 v-html 与作用域 css,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44844788/

相关文章:

vue.js - 如何删除未安装组件的组件样式?

css - 如何在不更改框列表高度的情况下仅在悬停时显示截断的文本?

typescript - 使用 TypeScript(Vue-Loader 和 TS-Loader)的中型应用程序构建时间极长(120 秒以上)

javascript - 如何在 v-for 循环中使用 BootstrapVue - Modal?

javascript - 获取锥形梯度 polyfill 以与 Vue 一起工作

vue.js - 如何从方法内部访问数据

webpack - 如何在我的组件 VUE 2 (webpack) 中加载外部 js 文件?

css - vue-loader 组件中的动态 css 不起作用

javascript - 从 vue 指令操作目标的 dom

javascript - 如何使用 Vuejs 将类 onclick 事件切换到 lis 列表中的 <li> 元素?