【问题标题】:Polymer: apply style to an element under Shadow DOMPolymer:将样式应用于 Shadow DOM 下的元素
【发布时间】:2017-12-31 07:31:49
【问题描述】:

我使用的是 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

【问题讨论】:

    标签: html css polymer polymer-2.x


    【解决方案1】:

    &lt;paper-menu-button&gt; 允许使用 CSS 属性设置内部 &lt;iron-dropdown&gt;.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

    &lt;paper-menu-button&gt; docs on styling 可能会列出您认为有用的其他 CSS 属性。

    【讨论】:

      【解决方案2】:

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

      不好但很有效

      【讨论】:

      • 我们无法将内联样式写入 Shadow DOM 下的类。
      • 不可能做到&lt;div class="dropdown-content" style="overflow: visible"&gt; content &lt;/div&gt;?
      猜你喜欢
      • 1970-01-01
      • 2014-06-07
      • 1970-01-01
      • 2021-08-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-21
      相关资源
      最近更新 更多