尝试使用以下方法设置角度组件的 CSS prop:
:host ::ng-deep .p-dropdown-panel {
transform-origin: center bottom !important;
top: -119px !important;
left: 0 !important;
}
不起作用,但是当我从上面的代码中删除 :host 和 ::ng-deep 时,它工作得很好 但问题是这样做意味着这个 CSS 规则也开始泄漏到其他组件中。我再次浏览了文档,但无法找到可能发生这种情况的原因。
.parent-element-className {
::ng-deep .p-dropdown-panel {
transform-origin: center bottom !important;
top: -119px !important;
left: 0 !important;
}
}
Angular Material
::ng-deep
CSS
View Encapsulation
Deprecated
::ng-deep
伪类选择器允许开发人员将样式应用到子组件,而不受 Angular 视图封装的限制。
::ng-deep
已被弃用,应谨慎使用。 Angular 建议使用替代的样式方法。
::ng-deep
将自定义样式应用到 Angular Material 组件:
自定义按钮:
.mat-button
#4CAF50
),文本颜色设置为白色。
自定义卡片:
.mat-card
#888888
)。
自定义样式应用:
graph TB;
A["::ng-deep Selector"] --> B["Angular Material Components"]
B --> C[".mat-button"]
B --> D[".mat-card"]
C --> E["Custom Background & Text Color"]
D --> F["Custom Box Shadow"]
图片::ng-deep 的替代品
::ng-deep
。
::ng-deep
可以快速修复,但重要的是通过采用推荐的样式实践来计划删除它。来源