代码之家  ›  专栏  ›  技术社区  ›  JMIII

如何覆盖PrimeNG p-divider颜色

  •  1
  • JMIII  · 技术社区  · 8 月前

    问题是我如何在Angular中覆盖素数的p-divider的颜色。使用版本17。

    以下是PrimeNG中p-divider组件的源代码链接 https://github.com/primefaces/primeng/tree/9003438e5f214c4239f64c6e3960dd05a8b07677/src/app/components/divider

    在chrome devtools中,我可以看到这种风格被应用,它不在p-divider或其css文件的源代码中。如果我在chrome devtools中覆盖颜色,它就会按预期工作。

    .p-divider.p-divider-horizontal:before {
        border-top: 1px #e5e7eb;
    }
    

    就像我说的,这段代码不在源代码中,但它在priming的theme.css文件中,用于各种主题。

    在devtools中,你也可以看到这种风格

    .p-divider-solid.p-divider-horizontal:before {
        border-top-style: solid;
    }
    

    当我试图在styles.scss或我的组件css中覆盖边框颜色的样式时(使用ng-deep),它会覆盖,但边框顶部样式会消失,我的组件中的所有p分隔符也会消失。

    我曾尝试在全球范围内和通过ng-deep和see-indevtools添加border-top样式,但它有一条线穿过它,没有应用。我可以用p-divider覆盖任何其他样式,如背景颜色等。但不能成功覆盖边框顶部样式。通常,覆盖PrimeNG的样式是一项容易的任务,但我不确定我在这里错过了什么?任何帮助都将不胜感激!!谢谢!

    1 回复  |  直到 8 月前
        1
  •  1
  •   Naren Murali    8 月前

    我们必须包括 border-type 作为 solid 当我们重写类时,当我们像你提到的那样设置时,它会使 边界类型 作为 none 所以你看不见它。

    .p-divider.p-divider-horizontal:before {
        border-top: 1px solid red !important;
    }
    

    Stackblitz Demo