当前位置: 首页 > 面试题库 >

阴影根元素中的样式

邹杰
2023-03-14
问题内容

有没有办法改变阴影元素中的样式?具体来说,扩展/覆盖CSS 类中的
某些属性?我正在使用一个名为Beanote的扩展名,自2017年4月以来从未进行过更新,我想修复一个令人讨厌的错误。我发现一行css对我来说足以对其进行修补,但是我在不使用shadow元素本身并直接在dev工具中编辑这些样式的情况下应用它感到无所适从。

我正在寻找一种方法:

/*global css rule*/
.the-class-name { property-name: my-value; }

覆盖此:

/* style tag inside the shadow-root */
.the-class-name { property-name: bad-value; }

我在网上找到的大多数资源都涉及到查询shadow-root override style或与之相关的查询,如果edit shadow-root styling这样做的话,:host这些资源不能满足我的需求或已弃用的功能(例如)::shadow


问题答案:

由于样式的隔离是Shadow DOM的功能,因此无法定义将在Shadow DOM范围中应用的全局CSS规则。

CSS变量可能是可行的,但应在阴影组件中显式实现(这不是第三方库的情况)。

一种解决方法是直接在阴影DOM中插入样式线。

//host is the element that holds the shadow root:
var style = document.createElement( 'style' )
style.innerHTML = '.the-class-name { property-name: my-value; }'
host.shadowRoot.appendChild( style )

注意:只有将Shadow DOM mode设置为,它才有效'open'

Chrome 73+和Opera 60+的2019更新

现在可以直接实例化CSSStyleSheet对象,并将其影响到Shadow DOM或文档:

var sheet = new CSSStyleSheet
sheet.replaceSync( `.color { color: pink }`)
host.shadowRoot.adoptedStyleSheets = [ sheet ]


 类似资料:
  • 有没有可能用蟒蛇硒在阴影DOM中找到元素? 示例用例: 我用输入了这个

  • 我需要使我的长方体阴影看起来像一个边框:如果我有一个具有插入的长方体阴影的父对象,并且我在其中放置了一个子div,则长方体阴影应该覆盖子div,如图所示,并带有边框: jsFiddle:http://jsfiddle.net/7rRsw/2/ 这个问题有没有类似于z索引或css黑客的东西? 编辑:我需要使用框阴影插入无边框或框捕捉。我正在寻找黑客,使这只可能与盒影。一种可能的方法是在子div的左右

  • 我可以通过以下方式访问dev中的用户名: 有没有其他方法可以通过webdriver访问ShadowDOM元素?

  • 量角器1.7.0引入了一个新特性:一个新的定位器,它有助于查找阴影DOM中的元素。 它涵盖哪些用例?您希望何时访问阴影DOM中的元素? 我问这个问题的原因是我错过了这个问题的动机部分——我认为量角器主要是一个有助于模仿真实用户交互的高级框架。访问阴影树听起来像是一件非常深入的技术事情,你为什么要这么做让我困惑。

  • 我的应用程序的大多数元素都在shadow-root(open)下。我需要使用量角器框架使它们自动化。deepCSS不起作用。请帮助我自动化这些元素-主要是点击。 我必须点击阴影根元素使用我的量角器自动化框架。我尝试了deepCSS、xpath等,但没有成功。