首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Style ng-bootstrap accordion with css

Style ng-bootstrap accordion with css
EN

Stack Overflow用户
提问于 2017-01-17 00:17:03
回答 1查看 5.7K关注 0票数 4

我有一个带accordion的Angular 2组件,我使用ng-bootstrap添加了它。一切在功能上都运行得很好,但是我尝试使用已编译的accordion元素所具有的.card, .card-header, .card-block类加载的样式,这些样式根本不会应用于元素。

这些类是在将accordion转换为div时由ng-bootstrap直接设置的。

我通过一个链接到组件TypeScript文件的styles.scss文件应用我自己的css。渲染完所有内容后,我的样式会出现在html输出标头的<style></style>标记中。它看起来像这样。

代码语言:javascript
复制
    <style>
        [_nghost-xfh-23]   .card[_ngcontent-xfh-23] {
          border: none; }

    [_nghost-xfh-23]   .card-header[_ngcontent-xfh-23] {
      margin-top: 0.75em !important;
      border: 1px solid rgba(0, 0, 0, 0.125); }

    [_nghost-xfh-23]   .card-block[_ngcontent-xfh-23] {
      text-align: left; }
    </style>

styles.scss如下所示:

代码语言:javascript
复制
:host .card {
  border: none;
}

:host .card-header {
  margin-top: 0.75em !important;
  border: 1px solid rgba(0, 0, 0, 0.125);
}

:host .card-block {
  text-align: left;

}

我的猜测是Angular 2试图应用样式(在编译过程中),但后来使用上述类创建了div,使得无法将样式应用于元素。

我受到限制,不能直接编辑bootstrap.css或创建其他全局css文件。我希望有一种方法可以在组件加载后重新应用css样式,或者其他一些方法来设置ng-bootstrap accordions的样式。

希望我的问题有意义,关于Sy

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-17 02:21:33

正如@ChristopherMoore在他的评论中所说,这是由于Shadow DOM造成的问题。添加/deep/修复了这个问题。下面是更新后的函数代码。

代码语言:javascript
复制
  /deep/ .card {
  border: none;
}

/deep/ .card-header {
  margin-top: 0.75em !important;
  border: 1px solid rgba(0, 0, 0, 0.125);
}

/deep/ .card-block {
  text-align: left
票数 18
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41680623

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档