ng-multiselect-dropdown自定义CSS

j2datikz  于 2023-04-08  发布在  其他
关注(0)|答案(3)|浏览(157)

我正在使用ng-multiselect-dropdown。我如何覆盖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;
   }

我需要用上面的CSS代码覆盖默认的CSS

wf82jlnq

wf82jlnq1#

默认情况下,Angular会将一些_ngcontent-xx添加到您的组件CSS文件中,这样它就不会与其他组件冲突。
为了解决这个问题,你需要在全局样式.css文件中添加下面的CSS,或者用其他方法使你的组件成为encapsulation: ViewEncapsulation.None,这意味着它的CSS不会附加Angular的默认类。

方案一:添加全局样式表。
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;
}

方案二制作组件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

希望这会有帮助!

juzqafwq

juzqafwq2#

你可以试试这样:

:host ::ng-deep .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;
}

你可以通过:host和::ng-deep覆盖任何节点模块或库的css。

bwitn5fc

bwitn5fc3#

:host ::ng-deep块包围scss,如下所示:

:host ::ng-deep {
  .multiselect-dropdown {
    background: white
  }
}

相关问题