css ng-select multiple -更改高度

3pmvbmvn  于 2023-03-05  发布在  其他
关注(0)|答案(2)|浏览(153)

这与ng-select - Change height上的问题有关,我想做完全相同的事情,但是使用了一个ng-select,它允许选择多个项目。
下面是我的ng-select代码:

<label class="col-sm-4 text-sm-right col-form-label">Payout Format</label>
                <div class="col-sm-8">
                    <ng-select
                        [items]="payoutFormats"
                        [multiple]="true"
                        [closeOnSelect]="true"
                        [searchable]="true"
                        bindValue="payoutBatchFormatID"
                        bindLabel="name"
                        placeholder="All"
                        [(ngModel)]="filter.payoutFormats"
                        name="payoutFormats">
                    </ng-select>
                </div>

在我的组件中,我添加了以下样式:

@Component({
    templateUrl: './test.component.html',
    styles: [`
        .ng-select{
            font-size:0.85em;
        }

        .ng-select .ng-select-container {
            min-height: 3px;
        }

        .ng-select.ng-select-multiple .ng-select-container {
            height: 3px;
        }
  `],
})

我可以使用非多选框实现此功能,方法是使用

.ng-select.ng-select-single .ng-select-container {
  height: 20px;
}

但在启用多个时将其从. ng-select. ng-select-single更改为. ng-select. ng-select-multiple对高度没有影响。
下面是我的select在CSS之后的样子:

我需要它小一点。

    • 更新**

在开发工具中,我可以在. ng-select. ng-select-container中更改最小高度,如下所示:

我的选择框会变小:

然而,将相同的样式添加到构件样式中并不会获得此效果:

@Component({
    templateUrl: './list-exceptions-handling-payments.component.html',
    styles: [`
        .ng-select{
            font-size:0.85em;
        }

        .ng-select .ng-select-container{
            min-height: 3px;
        }

        .ng-select.ng-select-multiple .ng-select-container {
            height: 3px;
        }

  `],
})
mw3dktmi

mw3dktmi1#

您已经覆盖了. ng-select-container和. ng-select-multiple,这是正确的,但您没有覆盖其子元素。
与选择元素相比,多选复选框具有附加元素(取消选择按钮、查看选定选项等)
这些都在

<div class="ng-value-container">
    <div class="ng-value>
    ....

NG值DIV含有门多萨和富兰克林元素:

您需要调整这些子元素中定义的高度/行高/边距/填充。
编辑:
在父元素减小之前,您还需要使子元素变小。例如:

erhoui1w

erhoui1w2#

如果您也因为多选框比普通选择框高而遇到此问题,可以按以下方式解决(我们仅在其中有实际选定项目时才进行顶部填充

.ng-select.ng-select-multiple .ng-select-container .ng-value-container{
  padding-top:0;
}

.ng-select.ng-select-multiple .ng-select-container .ng-value-container:has(div.ng-value){
  padding-top:5px;
}

相关问题