【Vue 学习】style 标签的 scoped 属性和 lang 属性

style 标签的 scoped 属性和 lang 属性

在 App 组件中会使用多个组件,最终多个组件的样式会汇总到一起,可能会有多个组件的类名相同的情况出现,会发生后来者居上,出现覆盖的现象,后引入的组件会覆盖先引入的组件

此时就需要使用 scoped 属性来限制 css 样式的作用域

1. 使用 scoped 属性

如下,两个组件均有类名为 demo 的样式,会发生冲突,而使用 scoped 属性进行限制之后即可解决问题

School 组件

<template>
  <div class="demo">
    <h2>学校名称</h2>
  </div>
</template>


<script>
export default {
  name: "SchoolCom",
};
</script>

<style scoped="scoped" lane="css">
.demo {
  background-color: pink;
}
</style>

Student 组件

<template>
  <div class="demo">
    <h2>学生姓名</h2>
  </div>
</template>


<script>
export default {
  name: "StudentCom",
};
</script>

<style scoped="scoped" lane="css">
.demo {
  background-color: red;
}
</style>

2. 使用 lang 属性

lang 默认使用 css 规则来书写 css 样式,如果要使用 less,则需要安装 less-loader

npm i less-loader

<style scoped="scoped" lang="less">
.demo {
    background-color: red;
    h2 {
    	color: green;
    }
}
</style>

3. 小知识

  • scoped="scoped" 可以简写为 scoped

  • lang="css" 可以省略不写,因为 lang 默认值就是 css

  • lang 的值可以为:css、less、sass、scss

  • 对于 App 组件

    • App 组件中的 style 标签如果不加 scoped 属性,所有子组件均共享这些样式

      App 组件中的 style 标签如果加 scoped 属性,这些样式仅 App 组件独享,子组件不可使用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

写代码的不谷

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值