zoukankan      html  css  js  c++  java
  • 解决vue中v-html元素中标签样式失效问题

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

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

    <template>
     <div class="hello">
     <section>
      <h2 class="title">{{news.title}}</h2>
      <p class="news-time">{{news.datetime}}</p>
      <div class="con" v-html="news.dec">
      </div>
      <button class="back" @click="goBack()">返回列表</button>
     </section>
     </div>
    </template>
    


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

    <style scoped lang="less">
    .con{
     p {
     font-size: 14px;
     line-height: 28px;
     text-align: left;
     color: rgb(238, 238, 238);
     color: #585858;
     text-indent: 2em;
     }
    }
    </style>

    解决方案:

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

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

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

    // 组件内
    <style scoped>
     .introduction{ 
      100%; 
     margin-bottom: 3rem;
     }
    </style>
     
    // 全局
    <style>
     .introduction img{
      100%;
     object-fit: fill;
     }
    </style> 

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

    .introduction>>> img{
      100%;
     object-fit: fill;
    }
    

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

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

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

  • 相关阅读:
    Java时间和时间戳的相互转换
    linux 通过pid 寻找程序路径的最简单命令(pwdx)
    Oracle--存储过程学习进阶
    经典sql总结(2)
    经典sql总结(1)
    类的初始化
    StringBuffer和String 的例子
    i=i++
    一个异常学习的好例子
    有空研究这篇http://blog.csdn.net/studyvcmfc/article/details/7720258 研究后写篇记录
  • 原文地址:https://www.cnblogs.com/wangweizhang/p/12750682.html
Copyright © 2011-2022 走看看