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

Blazor中Bootstrap卡片无法横向排列,如何解决?

解决Blazor房产卡片横向排列问题

你的代码核心问题是把Bootstrap的row容器放在了foreach循环内部,导致每个房产卡片都被包裹在独立的行里,所以只能纵向堆叠。要实现横向排列,需要把row放在循环外部,让所有卡片的col都处于同一个行容器中。

修正后的代码

<!-- 将row容器移到foreach外面 -->
<div class="row row-cols-1 row-cols-md-2 g-4">
    @foreach (var item in APModel)
    {
        <div class="col">
            <div class="card" style="width: 18rem;">
                <img src="https://images.pexels.com/photos/2360673/pexels-photo-2360673.jpeg?auto=compress&cs=tinysrgb&w=600" class="card-img-top" alt="房产图片">
                <div class="card-body">
                    <h6 class="card-title">PropertyType: @item.PropertyType</h6>
                    <h6 class="card-title">PropertyStatus: @item.PropertyStatus</h6>
                    <h6 class="card-title">Price: @item.Price</h6>
                    <h6 class="card-title">Location: @item.Location</h6>
                    <h6 class="card-title">Rooms @item.TotalRooms</h6>
                    <h6 class="card-title">Baths @item.Bathrooms</h6>
                    <p class="card-text">@item.Description</p>
                    <button class="btn btn-outline-danger btn-sm"
                        @onclick="(()=>DeleteProperty(item.PropertyID))">
                        Del
                    </button>
                </div>
            </div>
        </div>
    }
</div>

关键说明

  • Bootstrap的row是列的容器,所有需要横向排列的col必须放在同一个row内
  • row-cols-1 row-cols-md-2的作用是:
    • 在屏幕宽度小于768px(移动端)时,每行显示1张卡片
    • 在屏幕宽度≥768px(平板及以上)时,每行显示2张卡片
  • 如果你想在更大屏幕显示更多卡片,可以添加row-cols-lg-3这类类(比如row-cols-1 row-cols-md-2 row-cols-lg-3,大屏每行3张)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 17:35:26