问题
I use a git project for a virtual keyboard (https://ngx-material-keyboard.github.io/demo/). And I have some issues to get it running on a small device with 450*250 pixel.
At the end I found the necessary changes in the css if I modify it directly at the web browser with dev tools.
Now I have to find the right position to change the sources.
There will be used the overlay component from angular2-material to visualize the keyboard.
If I comment out the position in the cdk-overlay-container, it works:
.cdk-overlay-container {
/* position: fixed; */
z-index: 1000;
}
But I cant overwrite these from my angular application. Any suggestions?
Screenshot of changes
回答1:
UPDATED ANSWER
From the official documentation:
Styling overlay components
Overlay-based components have a panelClass property (or similar) that can be used to target the overlay pane.
You can override the default dialog container styles by adding a css class in your global styles.css. For example:
.custom-dialog-container .mat-dialog-container {
/* add your styles */
}
After that, you'll need to providies you css class as a panelClass parameter to your dialog:
this.dialog.open(MyDialogComponent, { panelClass: 'custom-dialog-container' })
Read this official documentation for more information.
ORIGINAL ANSWER
Use ::ng-deep in your component.css to override the default styles.
::ng-deep .cdk-overlay-container {
/* Do you changes here */
position: fixed;
z-index: 1000;
}
回答2:
To be able to override the Material CSS classes from your component styles, you will need to set the View Encapsulation to None on your component:
@Component({
templateUrl: './my.component.html' ,
styleUrls: ['./my.component.scss'], //or .css, depending what you use
encapsulation: ViewEncapsulation.None,
})
回答3:
If you want to change the styling of mat-dialogue-container adding a panel class and giving style is enough, but in case if you want to change the styling of cdk-overlay-container then adding a backdropClass will help
const dialogRef = this.dialog.open(PopupComponent, {
backdropClass: 'popupBackdropClass',
panelClass: 'custom-dialog-container',
data: { data: data }
});
in css add
.popupBackdropClass {
background-color:yellow
}
回答4:
I sort it out myself by using two stylessheet one Global and other component's stylesheet, In global i set z-index to to lower value(1000) so that it goes behind the header and in popup component styles sheet i set that to high value(2000) with !important so that header goes behind my overlay.
That's how i manage to solve it.
Thank me later
回答5:
I found that by using the main/default "Styles.css". Styling changes for the CDK (as well as Material and Animations) are picked-up properly. (caveat) I am using Angular 4 .
来源:https://stackoverflow.com/questions/45610137/changing-style-of-overlay-container