相关疑难解决方法(0)

带有范围CSS的Vue.js样式v-html

如何使用vue-loader使用范围限定的CSS为v-html内容设置样式?

简单示例:component.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>
Run Code Online (Sandbox Code Playgroud)

产生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.js vue-loader

4
推荐指数
4
解决办法
2694
查看次数

为 v-html 添加 CSS 样式

我想将样式添加到v-html. 我尝试了几种解决方案,但没有任何功能:(

这是我的代码:

模板 :

<div
  class="para"
  v-html="value" 
/>
Run Code Online (Sandbox Code Playgroud)

脚本 :

export default {
  data () {
    return {
      value : "<h2> TITLE </h2> <p> PARA </p>"
    }
  },
}
Run Code Online (Sandbox Code Playgroud)

风格 :

.para >>> h2 {
  color: blue;
}

.para >>> p {
  color: red;
}
Run Code Online (Sandbox Code Playgroud)

提前致谢 !

html css sass vue.js vuejs2

3
推荐指数
1
解决办法
2678
查看次数

标签 统计

vue.js ×2

css ×1

html ×1

sass ×1

vue-loader ×1

vuejs2 ×1