performance - 使用 FAST 有没有办法将样式应用于子 ShadowDOM 元素?
问题描述
我一直在使用 FAST 工具包 ( https://fast.design ) 创建我自己想要使用的元素。那段旅程的一部分使我制作了一个Toolbar
.
曾经Toolbar
,我想将按钮的背景更改为透明(看起来像:https ://fluentsite.z22.web.core.windows.net/components/toolbar/definition 。现在我可以创建另一个元素, 即ToolbarButton
扩展Button
(以及任何其他需要删除背景的控件) 并且它将为我的目的工作。不过, 感觉就像我应该能够做的事情, 因为它是Toolbar
.
我不确定这是否可能,但通过 GitHub 上的文档和源代码我无法弄清楚。
任何意见,将不胜感激。
解决方案
这是一个很好的问题。幸运的是,shadow dom 本身就支持这种情况的 CSS 特性。您可以使用::slotted
工具栏的 CSS 中的选择器来选择插入工具栏插槽的特定元素,并对它们应用自定义样式。因此,您可以定位插入工具栏的按钮,并使用该按钮在按钮上设置 css 属性,或将样式直接应用于它或其 CSS 部分。这是 MDN 文档的链接:https ://developer.mozilla.org/en-US/docs/Web/CSS/::slotted
这是基于您的场景的一些示例 css。
::slotted(fast-button) {
--accent-fill-rest: transparent;
}
请记住,这必须进入工具栏的 css 以影响所有fast-button
插入工具栏插槽的元素。
推荐阅读
- python - 错误是因为只能将列表(而不是“NoneType”)连接到列表中
- python-3.x - python - if-else -list 理解 - 在 if 中赋值
- r - 突变一列仅计数 1 - 2 - 3 - 1 - 2 - 3
- c# - 我想在 C# 中使用 mdb 查询在列之间放置一列
- c++ - 使用 boost::smatch 在 valgrind 中读取大小 1 无效
- curl - curl 有时在并发 Github 操作构建中失败
- ios - 如何在iOS中绘制类似图形的平行四边形?
- python - 使用 imaplib 和 python 检查电子邮件是否已读或未读?
- mongodb - MongoDB Compass 错误 - 应为“[”或 AggregationStage,但找到“{”。当我尝试在 $group 中使用 $sum
- vue.js - 如何在 Nuxt 中使用 eventHub?