在vue项目里面经常在页面下面的 style 标签上面加上 scoped 属性,对于这个 scoped 属性的了解做一下介绍。

1、作用

当 style 标签里面有 scoped 属性时,它的css只作用于当前组件中的元素。在单页面项目中可以使组件之间互不污染,实现模块化。

2、原理

通过使用postCss来实现转换,给dom增加一个动态属性,然后css属性也额外添加对应的属性来选择该dom,达到该样式只作用于含有该属性的dom,实现组件样式的模块化。

转换前:

<templete><div class='test'>hillo!</div>
</templete>
<style scoped>.test{color:red;}
</style>

转换后:

<templete><div class='test' data-v-4f795181>hillo!</div>
</templete>
<style scoped>.test[data-v-4f795181]{color:red;}
</style>

转换后的代码可以通过浏览器的控制台检查元素来查看。

3、如何修改有 scoped 属性的样式

我们的项目经常使用第三方组件库,例如 ElementUI;它的样式都用到了 scoped 属性。如果我们需要改变部分页面 ElementUI 的样式我们需要穿透 scoped,一般使用深度选择器 /deep/ 或者 ‘>>>’ 来穿透属性。

修改第三方插件样式:

<style scoped>.test /deep/ .el-menu-item { color:red; }
</style>
//或者
<style scoped>.test >>> .el-menu-item { color:red; }
</style>

如果 /deep/ 报错或者不生效,使用 ::v-deep

style 标签属性 scoped 的作用和原理相关推荐

  1. .vue文件中style标签的几个标识符

    .vue文件中style标签的几个标识符 在人生就要绝望的时候, 被编辑器所提示的一个scopedSlots所拯救. 卧槽, 写到最后才发现这个属性的具体卵用. 详情见最后解决办法. 问题背景 问题由 ...

  2. vue 样式标签使用 scoped

    在开发时,为了防止组件css样式被污染 在样式标签加上scoped就可以实现 其原理是通过PostCSS进行转译实现的 我们细心一点不难发现: 在没有加scoped之前我们在浏览器查看代码结构: ht ...

  3. vue中style scoped属性的作用和原理以及scoped穿透

    一.为什么要给style 节点加 scoped 属性(vue) 1.作用:当style标签里面有scoped属性时,它的css只作用于当前组建的元素.在单页面项目中可以使组件之间互不污染,实现模块化( ...

  4. style标签上的scoped属性

    vue中 在vue文件中的style标签上有一个特殊的属性:scoped(布尔值): <style scoped> </style> 作用 该属性的作用是将当前标签下的样式私有 ...

  5. html中form标签的作用style,HTML5中meta常用标签属性说明

    HTML5中meta常用标签属性说明 IE 兼容模式,Bootstrap 不支持 IE 古老的兼容模式.为了让 IE 浏览器运行最新的渲染模式下,建议将此  标签加入到你的页面中: content属性 ...

  6. style标签中的几个属性

    1.vue中使用css通常采用如下形式 <style lang="scss" scoped></style> 2.lang="scss" ...

  7. Vue style里面使用scoped属性并@import引入外部css, 作用域是全局的解决方案

    本来只是想解决如题的问题的,但是其中涉及的一些点,有些模糊,所以补充补充~ 首先是有关@import的问题,一般的文件中,我们知道引用外部css,有两种方式: 1. HTML中使用link标签 < ...

  8. HTML CSS的使用以及style标签和属性

    CSS(Cascading Style Sheets)用于渲染HTML元素标签的样式. CSS可以通过以下方式添加到HTML中: 内联样式:在HTML元素中使用"sytle"属性 ...

  9. Vue中的style标签的lang=“ “和scpoed属性

    Vue中的style 的lang=" "和scpoed属性 普通的 style 标签只支持普通的样式,如果想要启用 scss 或 less ,需要为 style 元素,设置 lan ...

最新文章

  1. Google Test(GTest)使用方法和源码解析——模板类测试技术分析和应用
  2. GDB调试汇编堆栈过程分析
  3. JSON数据格式解析库(cJSON、Jansson)的使用在STM32上移植和使用
  4. 404. Sum of Left Leaves
  5. python partition只能切割一次吗_Python3的字符串方法
  6. 进程间通信-字符串的传递
  7. 知道你为什么富不起来吗 十个耽误你一生的缺点 穷人杀手[网摘]
  8. 读写分离设计:复制延迟?其实是你用错了
  9. laravel5.5 Auth门脸类认证
  10. MySQL高级面试题
  11. 视频流媒体服务器的作用是什么?流媒体服务器功能介绍
  12. autojs利用坚果云实现云更新
  13. 多方向如何选择数据分析之营业额不一定可以决定方向
  14. Java IO流:(十二)NIONIO2简单介绍
  15. Android结课大作业报告
  16. android移动开发软件安装,android studio 开发的安卓软件怎么安装到手机上
  17. List接口如何实例化?(Java)
  18. 笔记本电脑在拔插电源时屏幕会黑一下,然后马上恢复正常
  19. 【ug903】Xilinx XDC约束的序(Order)
  20. format code appears twice

热门文章

  1. Apache Jakarta 项目介绍
  2. Unity基础之EasyAR
  3. c语言新手编程因式分解,c++/c语言因式分解
  4. 基于Linux+ARM的远程视频监控--系列开题
  5. 关于解决虚拟机不能挂起的问题
  6. PaddleOCR——训练总结
  7. 自然月合同月 生成费用
  8. Aria2高速下载利器 带你冲破百度网盘重重束缚
  9. 一文实现0~9手写数字识别系统
  10. macOS: 字体(font)文件 的 存放路径