移动端,用flex弹性盒模型布局实现头部、底部固定,中间内容区可滑动浏览的效果

H5开发移动端项目时,常常会遇到此类问题,顶部navbar,底部tabbar,中间滑动展示内容,如果用position:fixed;往往会出各种问题,这时,你不如考虑一下flex布局,在移动端上使用,是真的香!

1.css部分

  body{
            padding: 0;
            margin: 0;
        }
        html,body{
            width: 100%;
            height: 100%;
        }
        .page{
            display: flex;
            flex-direction: column;
            height: 300px;
        }
        .header{
            height: 40px;
            background: rgba(0,0,0,0.6);
            font-size:40px;
        }
        .content{
            flex: 1;
            border: 1px solid red;
            overflow: auto;
        }
        .footer{
            height: 40px;
            background: rgba(0,0,0,0.6);
            font-size:40px;
        }

2.html部分

<div class="page">
    <div class="header">
        i am header
    </div>
    <div class="content">
        content
        <p>121212</p>
        <p>121212</p>
        <p>121212</p>
        <p>121212</p>
        <p>121212</p>
        <p>121212</p>
        <p>121212</p>
        <p>121212</p>
        <p>121212</p>
        <p>121212</p>
    </div>
    <div class="footer">
        footer
    </div>
</div>

注: content区域的flex属性值为1,由该元素自动填充,page元素内剩下的空间。但头部,和底部是要固定高度的。另外,最重要的一点是在content元素上设置overflow:auto属性,即当该区域的内容超出其高度时,由滑动滚动条来浏览观看。

同时注意:在移动端,在某一次实现功能中,尽量不要过多地用fixed固定定位来实现类似弹窗的效果,因为问题比较多,用弹性盒模型布局实现,兼容性好。

这张图片的**尺寸比例**大约是 **9:19**,接近手机屏幕的纵向比例。假设其实际显示区域为 **1080px × 2280px**(典型手机屏幕分辨率),我们来详细描述其中的盒子数量和尺寸。 --- ### **📌 盒子数量与尺寸分析(假设宽度 1080px,高度 2280px)** **🔺 总体盒子数量:** **7 个主要盒子**(包含多个子元素) | **编号** | **区域名称** | **高度(px)** | **宽度(px)** | **描述** | |---------|------------|-------------|-------------|----------| | **①** | **顶部导航栏** | 200px | 1080px | 纯色背景,可能带有返回按钮、银行 LOGO 等 | | **②** | **资产信息区域** | 280px | 1080px | 包含“我的资产”与“最新理财收益”两个小部分 | | **③** | **存款/理财/全能存款分类区域** | 180px | 1080px | 3 个并列小按钮,每个约 **340px × 180px** | | **④** | **推荐存款产品(高亮利率区域)** | 350px | 1080px | **最显眼的红色大块,重点产品推荐** | | **⑤** | **定期存款列表** | 600px | 1080px | 至少包含 **2 个** 定期存款产品,每个高度约 **300px** | | **⑥** | **底部导航栏** | 150px | 1080px | 含 **4~5 个**导航按钮(均分,约 216px 宽每个) | | **⑦** | **其他额外信息(隐藏部分)** | 可能可滑动 | 1080px | 可能是更多存款选项,需滑动查看 | --- ### **📌 细节补充** 1. **所有盒子均为矩形,部分带圆角**,尤其是按钮区域(如“立即购买”)。 2. **存款分类区域**(第 ③ 盒子)**包含 3 个子盒子**(每个 340px × 180px)。 3. **底部导航栏**(第 ⑥ 盒子)一般为固定位置,不随滚动变化。 4. **定期存款列表** 可能是可滑动的,即超出屏幕区域时需要滚动查看。 --- ### **📌 结论** - 总体为 **7 个主要模块**,其中有多个子区域。 - 主要由 **矩形框** 组成,每个模块有不同的大小。 - **屏幕高度内可见 5~6 个盒子**,其余内容可能需要滑动查看。 这就是对该 UI 界面的详细结构分析,包括**盒子数量、形状、大小(像素单位)**等! 🚀 根据这个描述 给出对应的html代码 最好用vh vw % 等单位 根据这个描述 给出对应的html css 代码
最新发布
03-27
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值