搞懂>>>、/deep/、::v-deep、::v-deep()和:deep()的区别与用法
1. >>>
在
Vue
单文件组件中,我们通常会搭配css预处理器
使用。但Sass
之类的预处理器
无法正确解析>>>
,所以不推荐使用>>>
2. /deep/
/deep/
曾经是CSS
中实际提出的新增功能,但之后被删除,所以不建议使用。
3. ::v-deep
::v-deep是
/deep/
的别名深度选择器
。**兼容性:**支持
Vue2
,但在Vue3
中不推荐使用。
4. ::v-deep()
支持
Vue3
,但在编译时被视为已弃用并会引发警告
5. :deep()
:deep()
是Vue3
官方推荐的深度选择器
,不建议使用>>>
和/deep/
以及::v-deep
包括::v-deep()
。**兼容性:**支持
Vue3
,但在Vue2
中不可使用。
>>> → /deep/ → ::v-deep → ::v-deep() → :deep()
可以明显看到
深度选择器
的演化趋势关系选择器 → 伪元素 → 伪类
6 结论
- 在Vue2中使用
::v-deep
;- 在Vue3中使用
:deep()
;/deep/
需要与特定浏览器版本搭配使用,不推荐使用- 部分CSS预处理器对
>>>
支持不佳,在不使用CSS预处理器时可使用,否则不推荐使用