【问题标题】:How do I style the content in a child element?如何设置子元素中的内容样式?
【发布时间】:2014-07-15 06:13:27
【问题描述】:

我有:

<x-dialog><p>Whatever</p></x-dialog>

&lt;p&gt;Whatever&lt;/p&gt; 的内容当然会传递到 x-dialog 元素的 &lt;content&gt;&lt;/content&gt; 标签中:

<polymer-element name="x-dialog">
  <template>
    <link rel="stylesheet" href="dialog.css">
    <core-overlay id="overlay" layered backdrop opened="{{opened}}" autoCloseDisabled="{{autoCloseDisabled}}"  transition="core-transition-center">
      <content></content>
    </core-overlay>
  </template>
  <script type="application/dart" src="dialog.dart"></script>
</polymer-element>

如何以及在哪里设置我的&lt;p&gt; 的样式,即传递给我的元素的内容?请注意,此内容本身位于子元素中,在本例中为 core-overlay,但我认为这没有什么不同(当我将其移出 core-overlay 时,结果相同)。

http://www.polymer-project.org/articles/styling-elements.html 的样式指南没有让我找到解决方案(我假设 Dart 与此 JS 指南相符)。

【问题讨论】:

  • 你想把样式添加到x-dialog元素还是html页面上。
  • 你在 html 主页上尝试过 x-foo::shadow p{background-color:red}

标签: dart polymer dart-polymer


【解决方案1】:

如果您想将样式规则添加到您的 x-dialog 元素,样式指南中的相关部分是 Styling distributed nodes

将此添加到您的dialog.css

content::content p {
  background-color: blue;
}

否则,您可以像普通 DOM 元素的任何子元素一样设置样式

x-dialog p {
  background-color: blue;
}

【讨论】:

  • x-dialog p 不能直接在 html 上工作,因为 p 在阴影中,所以应该用 x-foo::shadow p{} 代替 x-dialog p
  • 您是如何获得&lt;p&gt; 在阴影中的信息的?恕我直言,它可能是,但不能从问题中提供的信息中得出结论。 &lt;content&gt; 允许您将子项放入自定义标签中,例如 &lt;div&gt;&lt;p&gt;WhatEver&lt;/p&gt;&lt;/div&gt;
  • @GünterZöchbauer 的意思是即使&lt;p&gt; 是通过&lt;content&gt; 标签投影,它实际上并不是in影子 DOM。这意味着您可以像往常一样使用x-dialog p { ... } 对其进行样式设置。请参阅this 了解更多信息。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-01-12
  • 2011-05-15
  • 1970-01-01
  • 2011-12-28
  • 1970-01-01
  • 2014-05-26
相关资源
最近更新 更多