Search code examples
htmlcssangular

ng-multiselect-dropdown custom css


I am using the ng-multiselect-dropdown. How can I override the CSS?

component.html

<ng-multiselect-dropdown [placeholder]="'Select Region'" 
    [data]="dropdownList" [(ngModel)]="selectedItems" 
    [settings]="dropdownSettings" (onSelect)="onItemSelect($event)" 
    (onSelectAll)="onSelectAll($event)" > 
</ng-multiselect-dropdown>

component.css

    .multiselect-dropdown[_ngcontent-c5] .dropdown-btn[_ngcontent-c5] {
        display: inline-block;
        border: 1px solid #adadad;
        width: 100%;
        padding: 6px 12px;
        margin-bottom: 0;
        font-size: 12px;
        font-weight: 400;
        line-height: 1.1;
        text-align: left;
        vertical-align: middle;
        cursor: pointer;
        background-image: none;
        border-radius: 4px;
   }

I need to override the default CSS with the above CSS code


Solution

  • Angular by default adds some _ngcontent-xx to your component CSS file so that it won't conflict with other components.

    To solve your problem you need to add below CSS in your global style.css file or another way to make your component as encapsulation: ViewEncapsulation.None meaning its CSS won't append default classes of Angular.

    Solution 1: Add in global stylesheet.

    style.css

    .multiselect-dropdown .dropdown-btn {
        display: inline-block;
        border: 1px solid #adadad;
        width: 100%;
        padding: 6px 12px;
        margin-bottom: 0;
        font-size: 12px;
        font-weight: 400;
        line-height: 1.1;
        text-align: left;
        vertical-align: middle;
        cursor: pointer;
        background-image: none;
        border-radius: 4px;
    }
    

    Solution 2 Make component ViewEncapsulation.None

    component.ts

    import { Component } from '@angular/core';
    
    @Component({
      selector: 'my-app',
      templateUrl: './app.component.html',
      styleUrls: [ './app.component.css' ],
      encapsulation: ViewEncapsulation.None // Add this line
    })
    export class AppComponent  {
    
    }
    

    Here is solution on stackblitz

    Hope this will help!