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

Django实现响应式多图移动端横向滑动展示的适配问题求解

适配方案及修改后完整代码

{% load static %}
{% include 'base.html' %}

<style type="text/css">
.container {
    width: 90%;
    margin:0 auto;
    padding: 10px 0;
    display: flex;
    flex-direction: row;
    justify-content: center;
    text-align:center;
    flex-wrap: wrap; /* 桌面端自动换行展示所有图片 */
    gap: 10px; /* 统一控制图片间距,替代原有box的margin属性 */
}

/* 移动端适配断点,可根据需求调整阈值 */
@media (max-width: 768px) {
    .container {
        flex-wrap: nowrap; /* 禁止元素换行,所有图片保持横向排列 */
        justify-content: flex-start; /* 左对齐,滚动从最左侧开始 */
        overflow-x: auto; /* 横向超出容器部分支持滚动 */
        scroll-snap-type: x mandatory; /* 可选:滚动吸附,滑动后自动对齐到完整图片位置 */
        /* 隐藏不同浏览器的默认滚动条,提升视觉体验 */
        -ms-overflow-style: none;
        scrollbar-width: none;
    }
    .container::-webkit-scrollbar {
        display: none;
    }
    .box {
        scroll-snap-align: start; /* 配合滚动吸附使用 */
        flex-shrink: 0; /* 禁止图片盒子被压缩,保证固定尺寸 */
    }
}

.box {
    width: 128px;
    height: 128px;
    background: gray;
    transition: 0.5s;
}

.box img {border-radius: 6px;}

.box:hover {
    transform: scale(1.2);
    background: black;
    z-index: 2;
}

body {
    background-color:white; 
}
</style>

<div class="container" >
    <div class="box"><img src="{% static 'images/128.jpg' %}" class="img-fluid" alt="Responsive image" ></div>
    <div class="box"><img src="{% static 'images/128.jpg' %}" class="img-fluid" alt="Responsive image" ></div>
    <div class="box"><img src="{% static 'images/128.jpg' %}" class="img-fluid" alt="Responsive image" ></div>
    <div class="box"><img src="{% static 'images/128.jpg' %}" class="img-fluid" alt="Responsive image" ></div>
    <div class="box"><img src="{% static 'images/128.jpg' %}" class="img-fluid" alt="Responsive image" ></div>
    <div class="box"><img src="{% static 'images/128.jpg' %}" class="img-fluid" alt="Responsive image" ></div>
    <div class="box"><img src="{% static 'images/128.jpg' %}" class="img-fluid" alt="Responsive image" ></div>
    <div class="box"><img src="{% static 'images/128.jpg' %}" class="img-fluid" alt="Responsive image" ></div>
</div>

核心改动说明

  • 桌面端容器新增flex-wrap: wrap属性,保持原有全部展示的效果不变
  • 新增移动端媒体查询规则:
    • 禁止容器内元素换行,所有图片保持横向排列
    • 给容器增加横向滚动属性,超出屏幕宽度的内容可通过手指滑动查看
    • 隐藏默认滚动条,避免破坏页面视觉效果
    • 给图片盒子新增flex-shrink: 0属性,避免移动端盒子被压缩变形
  • 可调整的参数:修改媒体查询的768px阈值可以调整适配的屏幕尺寸,修改box的宽度可以调整移动端一屏展示的图片数量

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 21:24:03