BillBie

导航

vue3文件中 scoped 的作用及穿透

在vue文件中的style标签上,有一个特殊的属性:scoped。当一个style标签拥有scoped属性时,它的CSS样式就只能作用于当前的组件,也就是说,该样式只能适用于当前组件元素。通过该属性,可以使得组件之间的样式不互相污染。如果一个项目中的所有style标签全部加上了scoped,相当于实现了样式的模块化。

 

如果解决css的未生效的问题,可以使用>>>穿透

子组件

<template>
  <div class="navbar">
    <div class="left" @click="btnclick"><slot name="leftbar"></slot></div>
    <div class="center"><slot name="centerbar"><p>{{center_text}}</p></slot></div>
    <div class="right"><slot name="rightbar"></slot></div>
  </div>
</template>

  

父组件:

<nav-bar path="/mine">
  <template v-slot:centerbar>{{shopcarttitle}}</template>
  <template v-slot:leftbar ><img :src="backhome" alt=""></template>
</nav-bar>
</template>

  

父组件加载子组件,且在name=‘leftbar’ 的插槽(class=left)中插入了一个 <img>

此时在子组件的样式文件中对img 设置无法生效,应为有scoped

可以在子组件

  .left >>> img{
    width: 30px;
    height: 30px;
  }

 此时img 就能被限制大小了

posted on 2022-05-10 22:40  BillBie  阅读(732)  评论(0编辑  收藏  举报