问题描述

elementui-admin项目中使用/deep/chrome89+中出现样式混乱的问题

公共样式文件中,使用/deep/,在main.js中引用,chrome89版本以下生效。chrome89+ /deep/选择器失效,导致样式错乱,覆盖的样式失效。

问题分析

Chrome 63将删除::shadow 和 /deep/

在Chrome63之后,你将无法使用shadow-piercing 选择器, ::shadow/deep/ 来设计(style) shadow root里面的内容。

  • /deep/ 组合者(combinator)将会成为后代选择器。 x-foo /deep/ div 将会当成 x-foo div.
  • ::shadow 伪元素(pseudo-element)将不会匹配任何元素。

删除::shadow 和 /deep/ 的原因

::shadow/deep/ 已经在Chrome 45被弃用了。这是在2015年4月由Web组件聚会中的全部的出席者决定的。

目前,shadow-piercing选择器的问题是它违反了封装(encapsulation)以及在某些时候组件无法更改组件的内部实施。

CSS Shadow Parts的规范正在被推进为shadow piercing选择器的替代。 Shadow Parts 将会允许组件的开发者公开指定的元素。这将会保留封装(encapsulation) 并允许网页的开发者可以一次过设计(style)多个属性。

网页使用了::shadow and /deep/我应该要怎样呢

::shadow/deep/ 选择器只会影响旧版的Shadow DOM v0组件。如果您已使用Shadow DOM v1,您不必为您的网页更改任何东西。

您可以使用Chrome Canary来确认您的网站不会因这更新而导致故障。如果你发现了问题,您可以尝试删除代码中所有的::shadow/deep/。如果删除这些选择器对您来说太复杂,您可以尝试考虑用shady DOM polyfill来代替native shadow DOM。如果你的网页正在使用native shadow DOM v0,你才要需要做这个改变。

解决方法

直接在公共样式中去掉/deep/即可。另外在单独的vue文件中,使用/deep/是可以的,单个vue文件使用scoped。

备注

https://developers.google.cn/web/updates/2017/10/remove-shadow-piercing?hl=zh-cn#%E5%A6%82%E6%9E%9C%E6%88%91%E7%9A%84%E7%BD%91%E9%A1%B5%E4%BD%BF%E7%94%A8%E4%BA%86shadow_and_deep%E6%88%91%E5%BA%94%E8%AF%A5%E8%A6%81%E6%80%8E%E6%A0%B7%E5%91%A2

/deep/在chrome89+中出现样式混乱的问题相关推荐

  1. idea module取得是parent的文件路径_React(或使用TS)中样式混乱解决方案 *.module.less...

    使用.module.css / .module.less / .module.scss避免样式混乱 先说写这一篇文章的出处,在之前feizhu-react这各项目中使用了基础的css样式,但是写到后来 ...

  2. vue组件中的样式属性:scoped,解决在父组件中无法修改子组件样式问题

    Scoped CSS规范是Web组件产生不污染其他组件,也不被其他组件污染的CSS规范. vue组件中的style标签标有scoped属性时表明style里的css样式只适用于当前组件元素,它是通过使 ...

  3. vue v html安全,vue 中控制v-html 中的样式,但不影响全局的小技巧

    我们知道在 Vue 中,style可以用两种方式来导入: // method1 @import ('./a.css'); //method2 复制代码 但是不管哪一种,导进的css文件都是应用于全局的 ...

  4. react中样式冲突_如何通过React中的样式使您的应用漂亮

    react中样式冲突 by Vinh Le 由Vinh Le 如何通过React中的样式使您的应用漂亮 (How to make your apps pretty with styling in Re ...

  5. Vue 中 scoped 样式穿透

    vue引用了第三方组件,如elementUI,需要在组件中局部修改第三方组件的样式,而又不想去除scoped属性造成组件之间的样式污染. 办法一: 使用::v-deep操作符( >>> ...

  6. 移动端登录页样式错乱_Web前端导致页面css样式混乱的原因问题,我和小伙伴们惊呆了...

    ## **css常用技巧** 本文都时再工作中用得比较多的Css,还有遇到的一些不长记性的问题,一起来看看这些技巧吧. 1. **实现组件的自动换行排布:** flex-wrap: wrap; 使列表 ...

  7. css常用样式,导致页面css样式混乱的原因,css遇到的问题,我和小伙伴们惊呆了

    css常用技巧 本文都时再工作中用得比较多的Css,还有遇到的一些不长记性的问题,一起来看看这些技巧吧. 实现组件的自动换行排布: flex-wrap: wrap;使列表排成一行 方法一:div{di ...

  8. React中CSS样式

    文章目录 一.内联样式 在内联样式中使用State 二.外部样式表 三.CSS Module 使用方式 一.内联样式 在React中可以直接通过标签的style属性来为元素设置样式.style属性需要 ...

  9. Github css加载失败,样式混乱解决办法

    github被墙的解决办法 Github css加载失败,样式混乱解决办法 打开cmd,输入  nslookup github.com 8.8.8.8  ,下面就会显示出github的服务器地址列表 ...

  10. html中的样式写在什么位置,css样式放在哪里?

    css(Cascading Style Sheets,层叠样式表),它是一种用来表现HTML或XML等文件样式的计算机语言,是用来表示html样式的一种编程语言,是可以做到网页和内容进行分离的一种样式 ...

最新文章

  1. ASP.NET MVC5+EF6+EasyUI 后台管理系统(73)-微信公众平台开发-消息管理
  2. MongoDB(6.mongodb的聚合操作以及高级查询3、排序等)
  3. 【pytorch】model.train和model.eval用法及区别详解
  4. 安卓入门系列-02创建一个项目
  5. Linux串口应用编程
  6. 小学阅读方法六种_小学生掌握了这些语文答题方法,轻松应对阅读理解,不再是难事...
  7. cookie封装做免输入登录
  8. Linux栈溢出漏洞原理,盘它!PWN栈溢出漏洞。
  9. IO-01-字节流与字符流
  10. nohup 命令的简单理解
  11. oracle导入dmp文件出错,IMP导入时的错误以及解决办法
  12. matlab计算概率分布,Matlab中的离散概率分布计算
  13. xp系统关于无线网络连接服务器,八步骤搞定XP系统无线网络设置问题
  14. python 单引号,双引号用法的理解
  15. Failed to compile with 1 errors
  16. QQ群推广最大化营销效果分析
  17. 从0到1 激活函数(一)sigmod函数
  18. 前无古人,后无来者经典日志大汇总--------生活珍藏版(其实你并了解你所生活的世界!)
  19. ros:游戏手柄控制海龟
  20. FullCalendar说明文档

热门文章

  1. 服务器托管费用一般是多少
  2. 校园招聘--百度笔试
  3. 为什么电脑总是弹出“拨号连接”界面?
  4. android 微信读书,微信读书(com.tencent.weread) - 5.4.3 - 应用 - 酷安
  5. TX-LCN事务控制原理
  6. 编程机器人考级证书有用吗_少儿编程考级证书有什么用
  7. [转]再分析资料整理
  8. python语言中的转义字符_怎么使用Python转义字符
  9. Python Post提交简单案例,文本内容在线语音合成
  10. 户外广告牌新标准将规定字体、颜色