Vue3 里 CSS 深度作用选择器 :global

什么是 :global(.test)

在 Vue3 的 <style scoped> 中,:global() 是用来声明全局样式 的!

意思是:即使你的 <style> 是 scoped 的,:global(.test) 里面的样式也是全局生效的!


✏️ 举个例子

vue 复制代码
<template>
  <div class="test">Hello World</div>
</template>

<style scoped>
:global(.test) {
  color: red;
  font-size: 24px;
}
</style>
  • 这里 .test全局的不会被 scope id 限制
  • 页面上任何 .test 元素都会被染成红色,不管它在哪个组件里!

🎯 小总结

写法 意义
:deep(.xxx) 穿透作用域,选到子组件内部
:global(.xxx) 声明全局样式,不加任何 scope id

⚡ 注意点

  • :global() 里面的选择器是完全裸奔的,全局污染,要小心命名冲突。
  • 最好配合 BEM 命名 或者加前缀,比如 .myapp-test,避免污染其他地方。

🚀 扩展一下(组合用法)

有时候也可以写局部 global,比如:

css 复制代码
.button {
  :global(.icon) {
    margin-right: 8px;
  }
}

意思是:.button .icon,但是 .icon全局的 class

相关推荐
子兮曰6 小时前
async/await高级模式:async迭代器、错误边界与并发控制
前端·javascript·github
恋猫de小郭6 小时前
2026 Flutter VS React Native ,同时在 AI 时代 VS Native 开发,你没见过的版本
android·前端·flutter
GIS之路8 小时前
ArcGIS Pro 中的 Notebooks 入门
前端
IT_陈寒10 小时前
React状态管理终极对决:Redux vs Context API谁更胜一筹?
前端·人工智能·后端
Kagol11 小时前
TinyVue 支持 Skills 啦!现在你可以让 AI 使用 TinyVue 组件搭建项目
前端·agent·ai编程
柳杉11 小时前
从零打造 AI 全球趋势监测大屏
前端·javascript·aigc
simple_lau11 小时前
Cursor配置MasterGo MCP:一键读取设计稿生成高还原度前端代码
前端·javascript·vue.js
睡不着先生11 小时前
如何设计一个真正可扩展的表单生成器?
前端·javascript·vue.js
天蓝色的鱼鱼11 小时前
模块化与组件化:90%的前端开发者都没搞懂的本质区别
前端·架构·代码规范
明君8799711 小时前
Flutter 如何给图片添加多行文字水印
前端·flutter