You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular Material标签页内列表布局错乱:如何恢复并排并设间距

Angular Material Tab包裹后表单卡片并排布局失效的解决方法

问题原因

你之前的两个mat-card能并排显示,是因为父容器有Bootstrap的row类提供flex布局上下文,col-md-5的网格规则才能生效。但添加mat-tab-group后,卡片的直接父容器变成了Angular Material自动生成的mat-tab-body,这个容器默认是块级元素,没有flex布局属性,导致col-md-5的网格规则失效,卡片自动变为块级元素上下排列。

解决方案

1. 恢复网格布局上下文

将两个mat-card包裹在带有row类的div中,重新触发Bootstrap的网格系统。

2. 设置10px间距

给这个row容器添加gap:10px样式,直接控制卡片间的横向间距。

修改后的模板代码

<mat-tab-group animationDuration="0ms">
    <mat-tab label="Tracts & Exclusions">
        <!-- 新增row容器包裹卡片,设置10px间距 -->
        <div class="row" style="gap: 10px;">
            <mat-card class="col-md-5 space">
                Tract List 
                <div class="row remove-spinner">
                    <input class="col-md-6 input" type="number"  #newTractId  matInput placeholder="Enter Tract Number">
                    <div [ngClass]="tractId.selectedOptions.selected.length > 0 ? 'remove-question-button icon-space' : 'remove-question-button icon-space disabled-button'" (click)="remove(tractId.selectedOptions.selected)">
                        <div class="fa fa-trash fa-lg" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512" data-fa-i2svg=""></div>
                    </div>
                    <div [ngClass]="newTractId.value.length > 0 ? 'remove-question-button icon-space' : 'remove-question-button icon-space disabled-button'"(click)="addItemToTracts(newTractId.value)">
                        <div class="fa fa-plus fa-lg"  viewBox="0 0 448 512"></div>
                    </div>
                </div>
                <mat-selection-list  #tractId [multiple]="true">
                    <mat-list-option *ngFor="let id of tract_id" [value]="id">
                        {{id}}
                    </mat-list-option>
                </mat-selection-list>
                <mat-list-option *ngFor="let shoe of tract_id" [value]="shoe" >
                    {{shoe}}
                </mat-list-option>
            </mat-card>

            <mat-card class="col-md-5 space">
                Excluded property's
                <mat-selection-list class="col-md-12" #shoes2>
                    <mat-list-option *ngFor="let shoe of tract_id">
                        {{shoe}}
                    </mat-list-option>
                </mat-selection-list>
            </mat-card>
        </div>
    </mat-tab>
    <mat-tab label="History">Content 2</mat-tab>
</mat-tab-group>

补充说明

  • 若不想使用内联样式,可在全局CSS或组件CSS中定义类:
.card-row {
    gap: 10px;
}

然后将容器改为<div class="row card-row">即可。

  • 检查自定义space类是否存在冲突样式,避免影响布局效果。

内容的提问来源于stack exchange,提问作者MRD_SMITH_97

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 23:30:57