Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >v-html指令渲染出的内容如何添加样式

v-html指令渲染出的内容如何添加样式

作者头像
流眸
发布于 2019-08-12 08:06:42
发布于 2019-08-12 08:06:42
5K00
代码可运行
举报
运行总次数:0
代码可运行
关于v-html

  在vue使用中,指令 v-html渲染页面经常用到,类似于jQuery的$('x').html( )去渲染。通过指令 v-html渲染出来的内容还会带有原来的标签及其样式,如果需要修改或者重设其样式,应该如何去做呢?

采坑

  首先,我在style中用子级选择器去选中并修改样式,经过猛如虎的操作后,并没生效。F12打开Elements调试,发现在style里面样式根本没加载上去,没有class中也没有类名出现。除此之外,渲染非该指令元素时,所有的类名会跟有 [data-v-xxxxxx]的东西。

爬坑
解决方案

现给出3中方案来解决此问题:

  • 去掉style中的 scoped;
  • watch监测数据变化;
  • 深度选择器 >>>
方案1实践

去掉style中的scoped

  在vue组件中,我们写style时,为了防止页面样式冲突,在每个组件中会加上 scoped属性。经测试,去掉该属性即可渲染样式成功。但是在组件过多或者项目中大时,经常会出现页面样式冲突,因此该方法不建议使用

方案2实践

watch监测数据变化

  在 script>exportdefault中,watch属性可监听v-html所绑定值的变化。如果是后台请求的数据,那么可以在watch中监听改数据变化,当数据发生改变驱动视图后,动态绑定一个class来改变子级元素样式。此方法有一定局限性

方案3实践

深度选择器 >>>

  此时,深度选择器的应用则脱颖而出。深度选择器 >>>,可深度改变子级样式。例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<template>
    <div class="test"></div>
</template>

<script>
// ***
</script>

<style scoped>
    .test >>> *{
        width: 100%;
    }
</style>

  如果使用 scss或者 less等css扩展语言,则用 /deep/替代:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<style scoped type="text/scss" lang="scss">
    .test{
        /deep/ *{
            width: 100%;
        }
    }
</style>
tips

  scoped属性导致css仅对当前组件生效,而html绑定渲染出的内容可以理解为是子组件的内容,一般情况下子组件不会被加上对应的属性,所以不会应用带有scoped的css。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-04-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 流眸 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
c语言之 malloc函数详解「建议收藏」
一、原型:extern void *malloc(unsigned int num_bytes);
全栈程序员站长
2022/09/07
1.4K0
C语言之malloc函数「建议收藏」
malloc的全称是memory allocation,中文叫动态内存分配,当无法知道内存具体位置的时候,想要绑定真正的内存空间,就需要用到动态的分配内存。
全栈程序员站长
2022/09/01
8980
C语言进阶(十二) - 动态内存管理
void* malloc(size_t size); 头文件<stdlib.h>
怠惰的未禾
2023/04/27
5960
C语言进阶(十二) - 动态内存管理
C语言实例_实现malloc与free函数完成内存管理
malloc函数用于在堆(heap)中分配指定大小的内存空间,并返回一个指向该内存块的指针。
DS小龙哥
2023/08/24
6220
C语言实例_实现malloc与free函数完成内存管理
C语言万字基础笔记总结(三)
- 例:编写一个函数sum,由用户输入**参数n**,计算1+2+...+(n-1)+n的**结果并返回**。
远方的星
2021/08/02
9730
C语言万字基础笔记总结(三)
[C语言]动态内存管理与柔性数组
1. 栈区( stack ):在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结
IT编程爱好者
2023/04/12
3640
[C语言]动态内存管理与柔性数组
C语言动态内存管理超详解
但是对于空间的需求,不仅仅是上述的情况。有时候我们需要的空间大小在程序运行的时候才能知道,那数组的编译时开辟空间的方式就不能满足了。 C语言引入了动态内存开辟,让程序员自己可以申请和释放空间,就比较灵活了。
fhvyxyci
2024/09/24
2270
C语言动态内存管理超详解
C语言——动态内存分配
从名字上来看,动态内存分配就是可以动态调整内存空间,那么我们为什么要进行动态内存开辟呢?
用户11352420
2024/11/07
1940
C语言——动态内存分配
c语言指针的有关总结
像我们可以写程序来操纵计算机内存这样子。 或者我们可以这样认为,物理内存是可以看得见,摸得着的,而虚拟内存反之。有关对虚拟内存的更深的认识点击这里虚拟内存
兰舟千帆
2022/07/17
3850
c语言指针的有关总结
C语言从入门到实战——动态内存管理
在C语言中,动态内存管理是指程序运行时,通过调用特定的函数动态地分配和释放内存空间。动态内存管理允许程序在运行时根据实际需要来分配内存,避免了静态内存分配在编译时就确定固定大小的限制。
鲜于言悠
2024/03/20
3380
C语言从入门到实战——动态内存管理
回溯1:动态内存管理与C语言实践
在C语言中,内存管理是一个非常重要的部分,尤其是动态内存管理。程序在运行时所需的内存大小往往是未知的,因此无法依赖编译时的静态内存分配。在这种情况下,动态内存管理成为程序员处理复杂数据结构时的有力工具。本篇文章将详细讲解C语言中的动态内存管理原理、常用函数及其典型应用,并通过相关代码示例来论证。
用户11289931
2024/11/24
3420
【C语言】自学终极笔记
函数包括:函数首部(第一行)+函数体(‘{’+内容+‘}‘),函数体=函数声明(即函数原型)+执行部分。
SarPro
2024/02/20
1860
【C语言】自学终极笔记
malloc函数具体解释
一、原型:extern void *malloc(unsigned int num_bytes);
全栈程序员站长
2022/07/13
6180
C 语言中的 malloc,free,calloc,realloc
malloc函数 原型:extern void* malloc(unsigned int size); 功能:动态分配内存; 注意:size 仅仅为申请内存字节大小,与申请内存块中存储的数据类型无关,故编程时需要通过以下方式给出:长度 * sizeof(数据类型); 示例: //动态分配内存,输入5个数据,并把低于60的值打印出来 #include <stdio.h> #include <stdlib.h> int main() { int *ptr = (int *)ma
村雨遥
2022/06/15
4830
【C语言】动态内存的管理
1. 栈区(stack):在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内
用户11290673
2024/09/25
1170
【C语言】动态内存的管理
C语言基础总结
我学习的第一门编程语言是Java,所以之前一直没有系统学习过C语言。这篇文章主要就是我学习过程的一个总结,方便以后复习查看。
害恶细君
2024/09/16
2210
C语言基础总结
【C语言】动态内存管理大总结
有了动态内存的开辟,那我们自然就要有回收和释放,C语言提供了另外一个函数free,专门是用来做动态内存的释放和回收的,函数原型如下 :
平凡的人1
2022/11/15
4370
【C语言】动态内存管理大总结
C语言——动态内存管理
但是上述的开辟空间的方式有两个特点: 1. 空间开辟大小是固定的。 2. 数组在申明的时候,必须指定数组的长度,它所需要的内存在编译时分配。
小李很执着
2024/06/15
1220
C语言——动态内存管理
C语言 | C++动态分配与静态分配的区别
所谓动态内存分配就是指在程序执行的过程中动态地分配或者回收存储空间的分配内存的方法。动态内存分配不象数组等静态内存分配方法那样需要预先分配存储空间,而是由系统根据程序的需要即时分配,且分配的大小就是程序要求的大小。
小林C语言
2020/12/27
3.3K0
C语言 | C++动态分配与静态分配的区别
C语言入门系列之10.结构体和共用体
引入: 有时需要将不同类型的数据组合成一个有机的整体,以便于引用。 例如,一个学生有学号、姓名、性别、年龄、地址等属性,需要定义int num; char name[20]; char sex; int age; int char addr[30];等属性,如下:
cutercorley
2020/07/23
1.3K0
C语言入门系列之10.结构体和共用体
相关推荐
c语言之 malloc函数详解「建议收藏」
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验