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

如何通过@media实现网站小设备适配?现有代码无响应求协助

解决响应式失效的问题

你的代码里有几个关键问题导致@media规则没起到预期效果,下面是具体的修复方案:

1. 必须添加Viewport元标签

移动端浏览器默认会把页面当成桌面宽度渲染,必须在HTML的<head>里添加这个标签,否则@media的宽度判断会失效:

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

2. 补全@media规则的核心布局修改

你当前的@media只调整了container的padding,但页面的导航栏、卡片网格等核心布局还在使用固定尺寸,导致小屏幕溢出。修改@media规则如下:

@media (max-width:768px){
  .container{
      padding:20px;
  }
  /* 把卡片网格改成单列布局,适配小屏幕 */
  .container .card-container{
    grid-template-columns: 1fr;
    padding-top: 40px;
  }
  /* 去掉卡片的固定宽度,让它自适应父容器 */
  .container .card-container .card{
    width: 100%;
    height: auto; /* 可选:让高度自适应内容,避免内容溢出 */
  }
  /* 修复导航栏链接的固定padding,避免溢出或挤成一团 */
  .navbar a {
    float: none;
    display: block;
    text-align: center;
    padding: 10px 20px;
    line-height: normal;
    transform: rotate(-10deg); /* 补充缺失的角度单位 */
  }
}

3. 修复原CSS中的小错误

  • transform: rotate(-10); 缺少角度单位,应改为 transform: rotate(-10deg);,否则该样式不会生效。
  • 卡片的固定高度height: 600px在小屏幕可能导致内容溢出,建议改成height: auto或者在@media规则中单独调整。

额外优化建议

导航栏可以改用flex布局,在桌面端也能更好地适配不同宽度:

.navbar {
  background-color: #333;
  overflow: hidden;
  display: flex;
  justify-content: space-around; /* 让链接均匀分布 */
}

这样就不用给a标签设置固定的左右padding,适配性更强。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 18:13:32