Eric小屋

  • 组件的样式冲突
  • scoped 属性使用
  • 首页
  • 学习笔记
    • JAVA
    • Spring
    • Node.js
    • Vue
  • 学习文档
  • 案例项目
  • 课程笔记
  • 问题解决
登录

组件的三大组成部分

  • Eric
  • 2024-01-04
  • 0
注意点说明

组件的样式冲突

默认情况:写在组件中的样式会 全局生效 → 因此很容易引起造成多个组件之间的样式冲突问题

1、全局样式:默认组件中的样式会走用到全局

2、局部样式:可以给组件加上scoped属性,可以让样式只作用于当前组件

scoped 属性使用

<style scoped>
/* 
  1.style中的样式 默认是作用到全局的
  2.加上scoped可以让样式变成局部样式

  组件都应该有独立的样式,推荐加scoped(原理)
  -----------------------------------------------------
  scoped原理:
  1.给当前组件模板的所有元素,都会添加上一个自定义属性
  data-v-hash值
  data-v-5f6a9d56  用于区分开不通的组件
  2.css选择器后面,被自动处理,添加上了属性选择器
  div[data-v-5f6a9d56]
*/
div{
  border: 3px solid blue;
  margin: 30px;
}
</style>

当我们在<style>标签内 加上 scoped 属性,即可使它的样式成为局部样式,只会在当前组件实现。

scoped原理:

1. 当前组件内标签都被添加 data-v-hash值 的属性

2. css选择器都被添加 [data-v-hash值] 的属性选择器

最终效果: 必须是当前组件的元素, 才会有这个自定义属性, 才会被这个样式作用到

联系作者:2572976830@qq.com
© 2025 Eric小屋
Theme by Wing
京ICP备2023032157号 京公网安备11011402053616号
  • {{ item.name }}
  • {{ item.name }}