纯css实现左右分栏宽度拉伸

本文详细探讨了如何仅使用CSS实现一个灵活的、可以拉伸的左右分栏布局,适用于不同屏幕尺寸。通过运用浮动、flexbox或grid布局技术,实现了内容区域随窗口大小变化而自动调整的效果,旨在提升网页的用户体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<template>
  <div class="departmentOrganizationalStructure commonPageBox">
    <!-- 左边 -->
    <div class="column-left">
      <div class="resize-bar scrollClass"></div>
      <div class="resize-line"></div>
      <div class="resize-save scrollClass">
      </div>
    </div>
    <!-- 右边 -->
    <div class="column-right">
    </div>
  </div>
</template>
<style lang="scss" scoped>
.departmentOrganizationalStructure {
  min-width: 1270px;
  height: 100%;
  overflow: hidden;
  .column-left {
    max-width: calc(100% - 700px);  //设置最大宽
    min-width: 200px; //设置最小宽
    height: 100%;
    background-color: #fff;
    position: relative;
    float: left;
    .resize-save {
      position: absolute;
      top: 0;
      right: 5px;
      bottom: 0;
      left: 0;
      paddin
<think>好的,我现在需要帮用户写一个适配手机端的商品列表页面,要求类似于美团外卖商家的样子。首先,我得先回想一下美团外卖商家页面的结构是什么样的。通常,美团外卖的商家页面分为左右部分:左侧是商品分类导航,右侧是对应的商品列表。这样的布局在手机端需要做响应式处理,可能需要使用flex布局或者grid布局实现。 接下来,我需要考虑用户可能的需求。用户提到的是适配手机端,所以移动端的适配是关键。首先,要确保页面在不同屏幕尺寸下都能良好显示,可能需要使用媒体查询或者rem单位来进行适配。另外,触摸操作的友好性也很重要,比如分类导航可能需要横向滚动,方便用户滑动切换。 然后是商品列表的结构。每个商品通常包括图片、名称、价格、销量等信息,还可能有一个加入购物车的按钮。这些元素需要合理布局,确保在手机屏幕上清晰可读,并且操作按钮容易点击。图片可能需要使用缩略图,并设置合适的宽高比,避免拉伸变形。 样式方面,需要注意颜色搭配、字体大小、间距等,保持界面简洁美观。美团外卖的主色调是黄色,但用户可能希望有自己的品牌色,所以可能需要保持颜色变量的灵活性,方便后续调整。 交互部分,分类导航点击后,右侧商品列表应该滚动到对应的分类位置。这可能需要使用JavaScript实现,监听分类项的点击事件,然后滚动右侧容器到相应位置。同时,右侧滚动时,左侧的分类导航也应该高亮显示当前所在的分类,这可以通过监听滚动事件,判断商品分类的位置来实现。 另外,购物车功能可能需要一个悬浮在底部的购物车图标,显示已选商品的数量和总价,点击后弹出购物车详情。这部分可能需要使用固定定位,并处理好滚动时的遮挡问题。 测试方面,需要在不同手机型号和浏览器上进行测试,确保兼容性和响应式效果。特别是iOS和Android的不同浏览器可能会有不同的表现,需要逐一检查。 可能遇到的问题包括:分类导航横向滚动在某些手机上不流畅,商品图片加载过慢影响体验,滚动定位不准确等。针对这些问题,可以考虑使用CSS的overflow-x: auto来实现横向滚动,并添加-webkit-overflow-scrolling: touch来优化滚动体验;图片使用懒加载技术,减少初始加载时间;滚动定位时使用scrollIntoView方法,并考虑可能的偏移量,比如固定的头部导航高度。 最后,代码结构需要清晰,HTML语义化,CSS模块化,JavaScript部分尽量使用原生或者轻量级框架,避免不必要的性能损耗。同时,注意SEO和可访问性,比如图片添加alt属性,使用合适的ARIA标签等。</think>以下是一个基于HTML5/CSS3的移动端商品列表页面实现方案,采用类似美团外卖商家的经典布局(左侧分类导航+右侧商品列表): ```html <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>商品列表</title> <style> :root { --primary-color: #ffd161; /* 主色调 */ --border-color: #e4e4e4; } /* 重置默认样式 */ * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; background: #f5f5f5; } /* 整体容器 */ .container { display: flex; height: 100vh; padding-top: 50px; /* 给顶部留空间 */ } /* 左侧分类导航 */ .category-nav { width: 90px; background: #fff; overflow-y: auto; -webkit-overflow-scrolling: touch; } .category-item { padding: 16px 8px; font-size: 13px; text-align: center; border-bottom: 1px solid var(--border-color); transition: all 0.3s; } .category-item.active { color: var(--primary-color); background: #f9f9f9; } /* 右侧商品列表 */ .product-list { flex: 1; overflow-y: auto; -webkit-overflow-scrolling: touch; padding: 10px; } .product-category { margin-bottom: 15px; } .category-title { font-size: 14px; color: #666; padding: 8px 0; } .product-item { display: flex; background: #fff; border-radius: 8px; padding: 12px; margin-bottom: 10px; box-shadow: 0 2px 4px rgba(0,0,0,0.05); } .product-img { width: 80px; height: 80px; border-radius: 4px; margin-right: 12px; } .product-info { flex: 1; } .product-title { font-size: 15px; color: #333; margin-bottom: 6px; } .product-desc { font-size: 12px; color: #999; margin-bottom: 8px; line-height: 1.4; } .product-footer { display: flex; justify-content: space-between; align-items: center; } .product-price { color: var(--primary-color); font-size: 16px; font-weight: bold; } .add-cart-btn { background: var(--primary-color); color: #333; border: none; border-radius: 15px; padding: 6px 18px; font-size: 13px; } /* 顶部搜索 */ .header { position: fixed; top: 0; left: 0; right: 0; background: #fff; padding: 8px 12px; box-shadow: 0 2px 4px rgba(0,0,0,0.05); z-index: 10; } .search-box { background: #f5f5f5; border-radius: 20px; padding: 8px 15px; color: #666; font-size: 13px; } /* 适配小屏幕 */ @media (max-width: 320px) { .category-nav { width: 80px; } .product-img { width: 70px; height: 70px; } } </style> </head> <body> <!-- 顶部搜索 --> <div class="header"> <div class="search-box">🔍 搜索商品</div> </div> <div class="container"> <!-- 左侧分类导航 --> <div class="category-nav"> <div class="category-item active">热销推荐</div> <div class="category-item">套餐优惠</div> <div class="category-item">汉堡主食</div> <div class="category-item">小吃配餐</div> <div class="category-item">饮品系列</div> </div> <!-- 右侧商品列表 --> <div class="product-list"> <!-- 分类区块 --> <div class="product-category"> <h3 class="category-title">热销推荐</h3> <!-- 商品项 --> <div class="product-item"> <img src="food1.jpg" class="product-img" alt="经典汉堡"> <div class="product-info"> <h4 class="product-title">经典牛肉汉堡</h4> <p class="product-desc">精选安格斯牛肉,搭配新鲜蔬菜和特制酱料</p> <div class="product-footer"> <span class="product-price">¥28</span> <button class="add-cart-btn">加入购物车</button> </div> </div> </div> <!-- 更多商品项... --> </div> </div> </div> </body> </html> ``` 主要特性说明: 1. **响应式布局** - 使用flex布局实现左右分栏 - 左侧导航固定宽度(90px),右侧自适应剩余空间 - 媒体查询适配小屏幕设备(320px以下) 2. **交互优化** - 分类导航点击切换active状态 - 侧滚动区域启用弹性滚动(-webkit-overflow-scrolling: touch) - 固定顶部搜索(position: fixed) 3. **视觉设计** - 采用卡片式商品设计(圆角+阴影) - 主色调变量管理(方便主题切换) - 合理的字号阶梯(13px-16px) 4. **移动端优化** - viewport元标签设置 - 触控按钮尺寸符合Fitts定律 - 图片延迟加载(需自行实现) 扩展建议: 1. 添加商品分类联动效果(点击左侧导航右侧自动滚动到对应分类) 2. 实现购物车功能(底部悬浮购物车图标) 3. 加入图片懒加载优化性能 4. 增加商品规格选择弹窗 5. 集成数字加减器组件 实际开发时建议: 1. 使用rem布局适配不同屏幕 2. 添加Loading状态提升用户体验 3. 实现下拉刷新/上拉加载更多 4. 使用CSS预处理器(如Less/Sass)管理样式 5. 配合Vue/React等框架实现组件化开发
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值