代码之家  ›  专栏  ›  技术社区  ›  Explosion Pills

通过css更新shadow dom中设置的样式

  •  1
  • Explosion Pills  · 技术社区  · 6 年前

    这个问题适用于Ionic,但它的答案可以更广泛地应用于CSS。我不确定。

    我使用的是离子4,它创建了具有特定样式的阴影dom元素。我有以下资料:

    <ion-item>
      <ion-label position="floating">Floating Label</ion-label>
      <ion-input></ion-input>
    </ion-item>
    

    我希望“浮动标签”文本在浮动时比通常更向左移动。我可以很容易地做到这一点与标签本身的风格。

    但是,在 ion-item 有自己的风格,包括 overflow: hidden . 我还没有找到从我的样式表中更新这些样式的方法。我试过用 /deep/ 和其他各种各样的选择,但这些似乎不起作用和支持他们似乎也被删除。我知道你可以使用css变量,但是这个特殊的属性 overflow 不是由变量设置的。我也知道您可以使用dom将样式注入到影子dom中,但我想避免这样做,因为我必须在每个组件中的某个位置执行此操作,而不是在应用程序中执行一次。

    如果变量不可用,是否有任何方法可以使用css覆盖阴影dom中设置的样式?

    1 回复  |  直到 6 年前
        1
  •  0
  •   Alex Beugnet    6 年前

    您应该尝试使用ng deep选择器直接操作dom元素样式。

    ::ng-deep {
     .your-class { // Used to contain your deep change to a localized node
        your style
    }
    

    角度指南: https://angular.io/guide/component-styles