Angular 角度材质-在组件级别覆盖覆盖css

Angular 角度材质-在组件级别覆盖覆盖css,angular,angular-material,angular-material-6,Angular,Angular Material,Angular Material 6,我试图在Angular组件级别覆盖一些cdk覆盖css,但它不起作用——即使我使用:host::ng deep 此处的材质选择下拉列表mat select content是cdk覆盖窗格的子项: 基本的 先进的 覆盖容器中的内容不能从组件中设置样式,因为覆盖内容不是组件的子级。覆盖容器是页面主体元素的子元素,因此其内容的样式需要驻留在全局样式中。但是,可以使用MatSelect的panelClass属性有选择地将样式应用于覆盖容器内的特定选择面板: 您不需要添加逗号,否则它会将其视为一个新的C

我试图在Angular组件级别覆盖一些cdk覆盖css,但它不起作用——即使我使用:host::ng deep

此处的材质选择下拉列表mat select content是cdk覆盖窗格的子项:

基本的 先进的
覆盖容器中的内容不能从组件中设置样式,因为覆盖内容不是组件的子级。覆盖容器是页面主体元素的子元素,因此其内容的样式需要驻留在全局样式中。但是,可以使用MatSelect的panelClass属性有选择地将样式应用于覆盖容器内的特定选择面板:


您不需要添加逗号,否则它会将其视为一个新的CSS选择器。对不起,逗号位于哪个选择器上?对不起,我刚才仔细看了一下,意识到这是有意的。您可以尝试::ng deep.cdk覆盖窗格:::ng deep.mat选择内容,看看是否最有用。我正在尝试将样式与类名隔离。搜索下拉列表。所以你的建议在这里起作用了-::ng deep.search dropdown.cdk overlay pane,::ng deep.mat select content,但这不是::ng deep.search dropdown.cdk overlay pane,::ng deep.search dropdown.mat select content。太奇怪了。问题是,如果我不使用正确的类层次结构,我很容易影响其他覆盖中的其他页面…我将尝试一下。这也是正确的答案,因为重新设置共享类(如cdk覆盖窗格)的列表可能会导致。
<mat-select panelClass="my-panel-class">...

.my-panel-class .mat-select-content {
    background: black;
    border: .5px solid #323030;        
}