【问题标题】:PrimeNG Accordion: Programmatically change header and content stylesPrimeNG Accordion:以编程方式更改标题和内容样式
【发布时间】:2021-02-16 06:24:43
【问题描述】:

我有以下手风琴组:

<p-accordion multiple=true>
    <p-accordionTab *ngFor="let tab of tabs" styleClass="{{tab.myClass}}" header="{{tab.header}}"
        [selected]="false">
        {{tab.description}}
    </p-accordionTab>
</p-accordion>

它通常由标签大小动态填充。目标是根据选项卡内容具有不同的背景和其他样式。所以我有 myClass 样式变量,它可以在每个手风琴选项卡创建时更改。例如。假设使用 myClass = 'myClass':

:host ::ng-deep .myClass.p-accordion {
    .p-accordion-header:not(.p-disabled).p-highlight .p-accordion-header-link {
        background: red;
    }
}

无论如何,我无法创建一个 CSS 规则来实现这个目标。 任何人都可以提供帮助吗? 非常感谢提前

【问题讨论】:

    标签: css angular accordion primeng


    【解决方案1】:

    解决方案是使用每个手风琴标签的包装 div:

    <p-accordion multiple=true>
        <div *ngFor="let tab of tabs" class="{{tab.customClass}}">
            <p-accordionTab header="{{tab.header}}"
                [selected]="false">
                {{tab.description}}
            </p-accordionTab>
        </div>
    </p-accordion>
    

    在哪里:

    .customClass * {
        background: red !important;
        //other properties
    }
    

    【讨论】:

      【解决方案2】:

      为了为每个选项卡创建不同的样式,您需要使其依赖于选项卡。现在,您为每个设置相同的样式。一种方法是创建一个提供类名的管道。

      <p-accordionTab *ngFor="let tab of tabs" styleClass="{{tab | getTabClass}}" header="{{tab.header}}"
      

      【讨论】:

      • 是的,对不起,我编辑了我的问题,这正是我正在做的。问题是如何从这样的外部类中获取内容背景,因为在这个primeng 组件上创建了5 或6 级html 元素。谢谢。
      • 我只是想知道,根据文档primefaces.org/primeng/showcase/#/accordion,该选项卡没有styleClass 属性。只有手风琴本身才有
      • 注明。有什么办法可以解决这个问题?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-05-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多