首页 > 其他分享 >解决vue中v-html元素中标签样式失效问题

解决vue中v-html元素中标签样式失效问题

时间:2023-03-10 17:13:53浏览次数:52  
标签:vue 样式 标签 html scoped 组件

最近在项目中遇到移动端和pc端样式冲突的问题。加上scoped会导致 v-html 下绑定的标签样式不生效、第三方引用的类库对其修改也不生效,特此总结一下几点,用来解决

 

Vue为v-html中标签添加CSS样式

 1 <template>
 2  <div class="hello">
 3  <section>
 4   <h2 class="title">{{news.title}}</h2>
 5   <p class="news-time">{{news.datetime}}</p>
 6   <div class="con" v-html="news.dec">
 7   </div>
 8   <button class="back" @click="goBack()">返回列表</button>
 9  </section>
10  </div>
11 </template>

当我们使用v-html渲染页面,使用下面这种方式去修改样式并没有效果

 1 <style scoped lang="less">
 2 .con{
 3  p {
 4  font-size: 14px;
 5  line-height: 28px;
 6  text-align: left;
 7  color: rgb(238, 238, 238);
 8  color: #585858;
 9  text-indent: 2em;
10  }
11 }
12 </style>

 

 

解决方案:

当我们引入第三方组件或加载html元素时,想修改下样式,就可以用以下三种方式:

一.去掉<style scoped>中的scoped:这个方法不建议使用,会改变布局,导致组件之间样式冲突。

 

二.定义两个style标签,一个含有scoped属性,一个不含有scoped属性

 1 // 组件内
 2 <style scoped>
 3  .introduction{ 
 4  width: 100%; 
 5  margin-bottom: 3rem;
 6  }
 7 </style>
 8  
 9 // 全局
10 <style>
11  .introduction img{
12  width: 100%;
13  object-fit: fill;
14  }
15 </style> 

 

三.通过 >>> 可以使得在使用scoped属性的情况下,穿透scoped,修改其他组件的值

1 .introduction>>> img{
2  width: 100%;
3  object-fit: fill;
4 }

四.通过给各个组件的第一层标签设置唯一class或者id,使用scss,然后去掉scoped。

注意:需要严格控制class 和 id 的 根命名。保证其唯一性。

本文来自:解决vue中v-html元素中标签样式失效问题 - 建站教程 (jiuaidu.com)

标签:vue,样式,标签,html,scoped,组件
From: https://www.cnblogs.com/jackal1234/p/17204058.html

相关文章

  • vue react框架
      Vue、React框架的价值(共同点)组件化数据视图分离,数据驱动视图——这是核心!只关注业务数据,而不用再关心DOM变化  vdom并不快,js操作DOM才是最快的但“数据......
  • 浅谈Vue3与Vue2区别
    1.Vue2选用选项式API(optionsapi)对比Vue3组合式API(CompositionApi)optionsapi在代码里分割了不同的属性(properties):data,computed属性,methods,选项所定义的属性都会暴露......
  • Element UI:能在一个html中使用它提供的组件吗?
    一、寻找组件找到需要使用的组件,比如一个表单  二、创建html文件导入element样式库、脚本库和它依赖的vue2库。<!DOCTYPEhtml><html><head>......
  • vue如何通过$router.push传参数
    如何通过$router.push传参数下面通过A页面向B页面传值来举个例子://A页面:this.$router.push({name:'页面B',params:{data:'我是要传递的参数'}})//B......
  • Vue在js中的使用思考,非脚手架
    varvm=newVue({el:".container",//挂载点data:{},//数据决定了页面的样子|数据的响应式=>数据变了界面跟着变computed:{},//计算属性,惰性求值的......
  • Vue 插槽
    Vue插槽环境准备(就一个分类组件)###Category.vue<template> <divclass="category"> <h3>xxx分类</h3> <ul> <li>11111</li> <li>2222</li> <li>33......
  • Vue3+vite+antDesign 日历 月份和星期中文显示
    <template><a-config-provider:locale="locale">//建议直接包裹在最外层,若果你想全部转换为中文的话</a-config-provider><template><scriptsetup......
  • vue3.2+ts 子组件的props接收的是个对象的话
    备忘录而已:<scriptsetuplang="ts">//import{PropType}from"vue"exportinterfaceDataInfo{id:number;name:string}typeProps={isObject?:DataInfo}//c......
  • # vue2 使用 cesium 【第二篇-相机视角移动+添加模型】
    vue2使用cesium【第二篇-相机视角移动+添加模型】搞了一阵子cesium,小白入门,这东西很牛逼,但是感觉这东西好费劲啊!网上资料不多,每个人的用法又不一样,操作起来真的是绝......
  • vue router中useRouter,userRoute的区别
    ......