Primeng 拾色器面板被切断

Primeng colorpicker panel cut off

我正在使用 primeng 颜色选择器并在做

<p-colorPicker id="colorpicker" [inline]="false" [ngModel]="color" (onChange)="changeColor($event)"></p-colorPicker>

但是,当我点击颜色选择器并出现面板时,它被截断了,看起来像这样:

如何让面板弹出而不是像那样被切断?我尝试执行 appendTo=body 但它没有执行我想要的操作并且破坏了面板。关于如何解决这个问题有什么建议吗?

编辑: 当我检查颜色选择器面板时,它看起来像这样:

您可以看到颜色选择器隐藏在元素后面,我希望它覆盖此侧面板。这是一个 angular material sidenav 如果这有助于提供颜色选择器所在的上下文!

您可以通过添加 left: unset !importantright: 0 来覆盖组件的样式。

面板默认采用这种计算样式。通过重置 left 属性 并设置 right 属性,您将能够看到以其他方式显示的面板。

概念验证

通过检查器,我按照我说的修改了样式。结果如下:

解决了你说的问题,完全显示了拾色器。

SCSS Class 我会实现

:host ::ng-deep .p-colorpicker-panel {
  left: unset !important;
  right: 0;
}

为什么 !important 在左边 属性?

从我在组件上看到的,左边属性直接是面板上的内联样式。因此,如果没有它,只需设置 left: unset,您就会遇到一些优先级问题。内联样式具有最高优先级,并且 ignore/override 您尝试对 class .p-colorpicker-panel

进行样式化

为什么 :host ::ng-deep

参考这个link

不确定出了什么问题,但是当我这样做时 appendTo="body" 它对我有用并且颜色选择器不再被截断!