vue 使用@import引入样式文件scoped无效造成全局样式污染

引入css文件导致全局样式污染

1.写在单组件的style里面css样式,如果标签内不加scoped可能会影响其他组件的样式

<style lang="scss" scoped>
</style>

2.通过import引入的外部css文件,这种引入方式是全局的,也会影响其他组件的页面样式

<style lang="scss" scoped>
@import url(../style.scss);
</style>

所以可以通过一下方法引入,则不会影响其他组件的页面样式

<style lang="scss" src="../style.scss" scoped></style>
<style lang="scss" scoped>

</style>

vue避免全局样式污染的正确做法

说明问题:

样式全局污染产生的bug,会影响到其他页面原有的样式,导致每个页面的样式互相冲突,如果写的代码造成了全局样式污染,导致别人的页面每个地方都要去写自定义页面的代码,导致工作量巨大,严重的话,领导会让你当场辞职。

解决方案:

1.避免造成全局污染,每个vue页面必须加上scoped

<style lang="scss" scoped>
.app-container {
  flex: 1;
  padding: 15px;
  box-sizing: border-box;
  background: #fafafa;
</style>

2.如果要修改element ui里面的底层样式,需要修改的页面加上::v-deep

::v-deep {
  .el-input,
  .el-select {
    display: inline-block;
    width: 240px;
  }
  .radioGroup {
    width: 240px;
  }
}

3.如果所有的页面都复用使用main.js引入public.scss,具体的代码在这个scss里面写

import '@/assets/styles/public.scss' // global css

4.如果几个页面复用,那么在styles文件夹,里面创建个独立的scss,复用的代码写在这个文件里面。

@import "~@/assets/styles/apply.scss";

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值