美文网首页
vue-cli里scoped:

vue-cli里scoped:

作者: 鱼香肉丝没有渔 | 来源:发表于2020-04-18 10:55 被阅读0次

    style的scoped:

    demo

      <template>
             <div class="test"></div>
        </template>
        <script>
            let a=document.querySelector('.a');
            let newDom=document.createElement("div"); // 创建dom
            newDom.setAttribute("class","b" ); // 添加样式
            a.appendChild(newDom); // 插入dom
        </script>
        <style scoped>
        .a{
           background:blue;
            height:100px;
            width:100px;
        }
        .b{
            background:red;
            height:100px;
            width:100px;
        }
        </style>
    
    // a生效   b 不生效
    <div data-v-1b971ada class="a"><div class="b"></div></div>
    .a[data-v-1b971ada]{ // 注意data-v-1b971ada
        background:blue;
        height:100px;
        width:100px;
    }
    
    

    <style> 标签有 scoped 属性时,它的 CSS 只作用于当前组件中的元素。
    它会为组件中所有的标签和class样式添加一个scoped标识,就像上面结果中的data-v-1b971ada
    所以原因就很清楚了:因为动态添加的dom没有scoped添加的标识,没有跟testAdd的样式匹配起来,导致样式失效。

    解决方式
    去掉该组件的scoped

    相关文章

      网友评论

          本文标题:vue-cli里scoped:

          本文链接:https://www.haomeiwen.com/subject/qrxvvhtx.html