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

如何为带图片的卡片设置Media Queries(媒体查询)

核心问题排查及修复方案

1. 样式优先级错误

你当前把媒体查询代码写在了全局普通样式的前面,CSS执行顺序是后写的覆盖前写的,所以移动端下媒体查询的属性会被后面的全局样式直接覆盖,导致适配不生效。只要把媒体查询代码移到所有全局样式的末尾即可。

2. 卡片容器flex布局适配缺失

#prices 用了flex布局,默认是横向排列,移动端竖屏宽度不够,三个卡片横向挤在一起会超出屏幕。需要在移动端媒体查询中把flex方向改成纵向排列。

3. 容器内边距过大

#prices 全局设置了padding: 100px,移动端竖屏总宽度本身就小,左右各100px的内边距会直接把卡片内容挤到可视区域外,需要在移动端把内边距改小。

4. 必加viewport元标签

移动端适配必须在HTML的<head>里加viewport配置,否则手机会默认按PC端宽度渲染页面,媒体查询不会生效:

<meta name="viewport" content="width=device-width, initial-scale=1.0">

修改后的完整CSS代码:

/* 全局样式放前面 */
#prices {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 100px;
  margin: 10px;
}

.listdrop {
  margin: 0;
  padding: 0;
  -webkit-transition: 0.3s;
  transition: 0.3s;
  border: 1px solid;
  list-style-type: none;
  width: 10vw;
}

img {
  max-width: 100%;
  height: auto;
}

/* 媒体查询统一放最后 */
@media (max-width: 600px) {
  #prices {
    width: 100%;
    flex-direction: column; /* 纵向排列卡片 */
    padding: 20px 10px; /* 缩小内边距 */
    box-sizing: border-box; /* 避免padding撑宽容器 */
  }
  .listdrop {
    width: 100%;
    max-width: 300px; /* 限制卡片最大宽度避免太宽 */
    margin: 10px 0; /* 卡片之间加纵向间距 */
  }
  .casual {
    width: 100%;
    display: flex;
    justify-content: center;
  }
}

额外修复建议

你现有HTML里按钮标签存在语法错误,<li>上写a href属性是无效的,建议改成标准的按钮嵌套链接写法:

<li>
  <button type="button" class="butn">
    <a href="#">Buy</a>
  </button>
</li>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.16 14:15:04