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

Bootstrap卡片响应式布局问题:移动端单列显示异常排查

响应式卡片布局调试问题解决

问题描述

我正在开发一个包含6张卡片的布局模块,需求如下:

  • 大屏(≥992px):每行展示3张卡片
  • 中屏(768px-991px):每行展示2张卡片
  • 小屏(<768px):每张卡片单独占一行,滚动时依次展示

手动拖拽调整浏览器窗口大小,布局能正常响应,但使用Chrome开发者工具调试时,布局达不到预期效果。相关代码如下:

原始CSS代码

.row {
  padding: 4rem;
  background-color: #F8F8FF;
  border: 4px black;
  colour: red;
}

.card {
  background-color: #ddf;
  padding: 30px;
  margin: 20px;
  transition: 0.40s;
}

.card:hover {
  transform: scale(1.05);
}

原始HTML代码(仅展示3张卡片)

<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.2/dist/css/bootstrap.min.css" integrity="sha384-Zenh87qX5JnK2Jl0vWa8Ck2rdkQ2Bzep5IDxbcnCeuOxjzrPF/et3URy9Bv1WTRi" crossorigin="anonymous">

<div class="container ">
  <h1 class="display-4">My Projects/Work</h1>
  
  <div class="row g-3">
    <div class="col-12 col-md-6 col-lg-4">
      <div class="card" id="proj1">
        <img src="https://via.placeholder.com/300x200" class="card-img-top" alt="project_1" />

        <div class="card-body">
          <h5 class="card-title">Blog Project</h5>
          
          <p class="card-text">
            A simple blog website which I made from scratch using html , css and javascript for the frontend.The backend was done with Django and SQL.
          </p>
          
          <a href="#" class="btn btn-primary">Click to see</a>
        </div>
      </div>
    </div>
    
    <div class="col-12 col-md-6 col-lg-4">
      <div class="card" id="proj2">
        <img src="https://via.placeholder.com/300x200" class="card-img-top" alt="project_2" />

        <div class="card-body">
          <h5 class="card-title">Social media clone </h5>
          
          <p class="card-text">
            A social media clone with all the main features of a social media site such as Facebook.In order to achieve this I used Django and React.
          </p>
          
          <a href="#" class="btn btn-primary">Click to see</a>
        </div>
      </div>
    </div>
    
    <div class="col-12 col-md-6 col-lg-4">
      <div class="card" id="proj3">
        <img src="https://via.placeholder.com/300x200" class="card-img-top" alt="project_3" />

        <div class="card-body">
          <h5 class="card-title">E-commence site</h5>
          
          <p class="card-text">
            This is a website I build for a small tech company in my local area that specialized in databases .

          </p>
          
          <a href="#" class="btn btn-primary">Click to see</a>
        </div>
      </div>
    </div>
  </div>

问题排查与修复方案

1. 开发者工具调试设置修正

  • 切换到「Responsive」模式:打开开发者工具后,点击设备工具栏中的「Responsive」选项,确保是基于窗口宽度的原生响应式调试,避免启用特定设备模拟模式导致断点判断异常。
  • 强制清除缓存:刷新页面时按住Ctrl+Shift+R(Windows)或Cmd+Shift+R(Mac),避免旧CSS缓存干扰新样式。

2. 代码错误修复

代码存在几个语法和布局冲突问题:

  • CSS中border: 4px black;缺少样式关键字,应改为border: 4px solid black;
  • CSS中colour: red;拼写错误,正确属性名是color: red;
  • 卡片的margin: 20px;会和Bootstrap栅格的g-3间距叠加,导致布局错位,建议移除卡片的margin,改用栅格的间距类(如g-4)控制间距。
  • 确保6张卡片都正确嵌套在col-12 col-md-6 col-lg-4容器中,且全部放在同一个.row内。

3. 修正后的完整代码

修正后的CSS

.row {
  padding: 4rem;
  background-color: #F8F8FF;
  border: 4px solid black;
  color: red;
}

.card {
  background-color: #ddf;
  padding: 30px;
  transition: 0.4s;
}

.card:hover {
  transform: scale(1.05);
}

修正后的HTML(含6张卡片)

<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.2/dist/css/bootstrap.min.css" integrity="sha384-Zenh87qX5JnK2Jl0vWa8Ck2rdkQ2Bzep5IDxbcnCeuOxjzrPF/et3URy9Bv1WTRi" crossorigin="anonymous">

<div class="container ">
  <h1 class="display-4">我的项目/作品</h1>
  
  <div class="row g-4">
    <!-- 卡片1 -->
    <div class="col-12 col-md-6 col-lg-4">
      <div class="card" id="proj1">
        <img src="https://via.placeholder.com/300x200" class="card-img-top" alt="项目1" />
        <div class="card-body">
          <h5 class="card-title">博客项目</h5>
          <p class="card-text">
            从零搭建的简易博客网站,前端使用HTML、CSS和JavaScript,后端基于Django和SQL开发。
          </p>
          <a href="#" class="btn btn-primary">查看详情</a>
        </div>
      </div>
    </div>
    
    <!-- 卡片2 -->
    <div class="col-12 col-md-6 col-lg-4">
      <div class="card" id="proj2">
        <img src="https://via.placeholder.com/300x200" class="card-img-top" alt="项目2" />
        <div class="card-body">
          <h5 class="card-title">社交媒体克隆版</h5>
          <p class="card-text">
            复刻Facebook核心功能的社交媒体克隆网站,技术栈为Django + React。
          </p>
          <a href="#" class="btn btn-primary">查看详情</a>
        </div>
      </div>
    </div>
    
    <!-- 卡片3 -->
    <div class="col-12 col-md-6 col-lg-4">
      <div class="card" id="proj3">
        <img src="https://via.placeholder.com/300x200" class="card-img-top" alt="项目3" />
        <div class="card-body">
          <h5 class="card-title">电商网站</h5>
          <p class="card-text">
            为本地一家专注数据库服务的科技公司开发的电商网站。
          </p>
          <a href="#" class="btn btn-primary">查看详情</a>
        </div>
      </div>
    </div>
    
    <!-- 卡片4 -->
    <div class="col-12 col-md-6 col-lg-4">
      <div class="card" id="proj4">
        <img src="https://via.placeholder.com/300x200" class="card-img-top" alt="项目4" />
        <div class="card-body">
          <h5 class="card-title">待办事项应用</h5>
          <p class="card-text">
            支持多用户的待办事项管理工具,前端使用Vue.js,后端用Node.js + MongoDB。
          </p>
          <a href="#" class="btn btn-primary">查看详情</a>
        </div>
      </div>
    </div>
    
    <!-- 卡片5 -->
    <div class="col-12 col-md-6 col-lg-4">
      <div class="card" id="proj5">
        <img src="https://via.placeholder.com/300x200" class="card-img-top" alt="项目5" />
        <div class="card-body">
          <h5 class="card-title">数据可视化平台</h5>
          <p class="card-text">
            基于ECharts搭建的企业数据可视化平台,支持自定义报表生成。
          </p>
          <a href="#" class="btn btn-primary">查看详情</a>
        </div>
      </div>
    </div>
    
    <!-- 卡片6 -->
    <div class="col-12 col-md-6 col-lg-4">
      <div class="card" id="proj6">
        <img src="https://via.placeholder.com/300x200" class="card-img-top" alt="项目6" />
        <div class="card-body">
          <h5 class="card-title">API接口服务</h5>
          <p class="card-text">
            为移动端应用提供的RESTful API服务,基于FastAPI开发,支持JWT认证。
          </p>
          <a href="#" class="btn btn-primary">查看详情</a>
        </div>
      </div>
    </div>
  </div>
</div>

4. 验证步骤

  1. 打开Chrome开发者工具(F12),切换到「Responsive」模式
  2. 拖动调试窗口边缘,观察不同宽度下的布局:
    • 宽度<768px:每行1张卡片
    • 768px≤宽度<992px:每行2张卡片
    • 宽度≥992px:每行3张卡片
  3. 若仍有问题,检查「Elements」面板中col-*类是否被正确应用,是否存在其他CSS样式覆盖。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 01:25:37