【问题标题】:Hide Polymer element隐藏聚合物元素
【发布时间】:2017-01-23 07:01:39
【问题描述】:

我尝试在特定元素条件下隐藏几个聚合物元素。我知道有几种可能性。在我看来,最简单的方法是引入一个新的 CSS 类

.invisible {
    display: none;
}

并将其添加到聚合物元素的类列表中

this.$.icon.classList.add('invisible');
this.$.text.classList.add('invisible');
this.$.button.classList.add('invisible');

但这对元素没有影响。元素仍然可见。查看元素检查器显示该类已添加:

class="style-scope parent-elem invisible"

其中 parent-elem 是父元素的名称。

谁能解释一下为什么该元素不会被隐藏?

谢谢

最好的问候, 迈森曼

【问题讨论】:

  • 您好,有时,取决于您的元素如何实现以及如何相互交互,这可能是因为新类隐藏在 shadow dom 或 light dom 中。我对一些外部库有类似的问题,在添加类后使用Polymer.dom.flush() 解决了它。

标签: css polymer


【解决方案1】:

您可以使用父 property 轻松操作您的元素。在您的元素中尝试properties 添加property

properties: {
 ...
 elementsVisible: {
  type: Boolean,
  value: true
 }
 ...
}

然后在您的method 中操作此property 和html 组件集

<element hidden="[[!elementsVisible]]" ></element>

ps。如果这不起作用,您可以添加parent css

[hidden] {
  display: none;
 }

有时聚合物元素需要特殊的 mixin 来定制它们的 css,但隐藏通常可以工作 :)

【讨论】:

  • 感谢您的分析。如果主机元素的某些属性的文本长度
  • 在您的示例代码中,您编写了将类添加到三个元素,如果您只需要一个标志来隐藏所有这些树元素,我建议您使用 Polymer 属性标志 - 您可以轻松控制它(比类)
  • 不幸的是,我需要为每个组件设置不同的标志。为什么隐藏类对元素没有影响?
  • 抱歉,回答延迟。父组件是一个带有 flex 布局的简单 span 容器
猜你喜欢
  • 1970-01-01
  • 2014-05-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多