html - 当主 dom 包含一个类时如何更改 shadow Dom 中元素的 css

标签 html css shadow-dom

这是代码:

<html>
  <div class="parent-div">
    <div id="shadow_host">
      #shadow-root(open)          
    <div class="child-div">some random things</div>
    </div>
  </div>      
</html>

我已将影子 dom 附加到元素。当主 dom 有一个带有 parent-div 类的父元素时,我想用 child-div 类更改元素的 css。是否可以像

这样从 css 做
.parent-div .child-div{
   display:none
}

最佳答案

您可以在 Shadow DOM 样式中使用 :host-context() CSS 函数。

:host-context(.parent-div) .child-div{
   display:none
}

document.querySelector( '#shadow_host' )
    .attachShadow( { mode: 'open' } )
    .innerHTML = `
        <style>
            :host-context(.parent-div) .child-div {
                display:none
            }
        </style>
        <div class="child-div">some random things</div>
    `
<div class="parent-div">
  <div id="shadow_host">
   </div>
</div>      

关于html - 当主 dom 包含一个类时如何更改 shadow Dom 中元素的 css,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55903555/

相关文章:

html - 引导列中的高度问题

AngularJS 和 Shadow DOM

javascript - 重置样式继承在 shadow dom 中不起作用

html - 如何使用 CSS 过渡从导航栏下方滑出子菜单?

html - 为什么导航不在标题的中心对齐?

html - 从范围中获取索引号

javascript - 按类排列的元素数组 - TypeError : $. id 不是函数

asp.net - asp .net Gridview高度溢出到下一个div

html - 过渡持续时间在特定的 div 中不起作用

javascript - 如何将 Shadow DOM delegatesFocus 选项与 Polymer 一起使用?