【发布时间】:2018-11-29 15:34:41
【问题描述】:
所以,基本上我有一个ui-button,它是一个分子。该元素由ui-text 和ui-icon 元素组成,它们是原子。当按钮有图标时,我想将margin-left 应用于文本。
但是,文本是 ui-text 的影子 dom 内的 span 元素。这意味着在ui-button 内部我有一个对应于ui-text 的嵌套shadow dom:
<ui-button kind="primary" useForClick="someFn">
<ui-icon name="payment"></ui-icon>
<ui-text>Pay with card</ui-text>
<ui-button>
渲染:
ui-button
|__shadow dom
|__ui-icon
|__ui-text
|__shadow dom
|__span
如何通过 CSS 从父元素访问内部阴影 dom?这个想法是在ui-button 中应用这样的东西:
slot[name=text]::slotted(ui-text) span::slotted() {
margin-left: 10px;
}
【问题讨论】:
-
您是否在 ui-button Shadow DOM 中尝试过类似
ui-icon + ui-text { margin-left: 10px }的操作? -
@Supersharp 感谢您的回复。事实上,如果将
ui-text直接放在ui-button内部而不是slot,它就可以工作。否则不要。
标签: javascript css web-component shadow-dom