聚合:将样式应用于Shadow DOM下的元素

时间:2017-12-29 10:29:42

标签: html css polymer polymer-2.x

我使用的是Polymer 2.0。我需要在Shadow DOM下为类应用样式。

如果案例类似iron-dropdown位于shadow-root下):

<paper-menu-button>

#shadow-root
<iron-dropdown></iron-dropdown>

</paper-menu-button>

iron-dropdown的样式我们可以这样写:

paper-menu-button {
   --iron-dropdown: {   
     overflow:visible;
   }
} 

但是,在这种情况下:

<paper-menu-button>

#shadow-root
<iron-dropdown>
<div class="dropdown-content"> content </div>
</iron-dropdown>

</paper-menu-button>

我们如何为课程应用样式 .dropdown-content

2 个答案:

答案 0 :(得分:1)

<paper-menu-button>允许使用CSS属性为内部<iron-dropdown>.dropdown-content设置样式(分别为--paper-menu-button-content--paper-menu-button-dropdown):

<dom-module id="x-foo">
  <template>
    <style>
      paper-menu-button {
        /* applies to inner iron-dropdown */
        --paper-menu-button-dropdown: {
          overflow: visible;
        };

        /* applies to inner .dropdown-content */
        --paper-menu-button-content: {
          box-shadow: 5px 10px 20px lightblue;
          overflow: visible;
        };
      }
    </style>

    <paper-menu-button>
    ...

demo

<paper-menu-button> docs on styling可能会列出您可能会觉得有用的其他CSS属性。

答案 1 :(得分:0)

您可以使用内联样式来设置.dropdown-content样式。

不好但有效