【懒人教程】如何让uniapp项目在PC大屏中显示移动端的效果 - 统一uniapp项目的PC、平板、手机的样式

效果图

H5环境下,PC、平板、手机的样式一致

写在前面

无论是uniapp使用pages.json展示的顶部导航栏navbar和底部标签栏tabbar,

还是第三方的navbar、tabbar组件,

都是基于position: fixed;的写法,导致无法自适应的按照某种宽度居中显示,一直是屏幕全宽,

所以,严重建议自己手写navbar、tabbar并封装使用。

具体步骤

  1. 修改App.vue,增加css:

    css 复制代码
    /****************************************************/
    /* 【目标】PC、平板、移动端统一使用移动端的效果,并居中 */
    /* body底色:黑底 */
    page {
    	background-color: #000;
    	width: 100%;
    }
    /* 视口底色:浅灰色 */
    uni-page-body {
    	background-color: #e8e8e8;
    }
    /* 适配PC - 居中窄屏 */
    #app,
    .appNavbar,
    .appTabbar {
    	width: 100%;
    	max-width: 1280px;
    	margin: 0 auto;
    	font-weight: normal;
    	background-color: #e8e8e8;
    }
    .appNavbar, .appTabbar {
    	background-color: #fff;
    }
    @media (min-width: 768px) {
    	/* PC 端(屏幕宽度最低768px时,超出平板、手机范围,固定375px并居中) */
    	#app,
    	.appNavbar,
    	.appTabbar {
    		width: 375px;
    		margin: 0 auto;
    	}
    }
    
    /* 自己写tabbar、navbar,实现PC端和移动端统一展示移动端效果 */
    .appNavbarWrapper,
    .appTabbarWrapper {
    	position: fixed;
    	top: 0;
    	left: 0;
    	right: 0;
    }
    
    .appTabbarWrapper {
    	bottom: 0;
    	top: unset;
    }
  2. 在页面上,自己手写navbar、tabbar组件

    html 复制代码
    <template>
    	<view>
    		
    		<!-- 顶部导航栏 -->
    		<view class="appNavbarWrapper" style="height: 30px;">
    			<view class="appNavbar">
    				导航栏
    			</view>
    		</view>
    		<!-- 顶部导航栏 - 占位空间 -->
    		<view style="height: 30px;"></view>
    		
    		
    		
    		<!-- 页面内容 -->
    		<view>
    			页面内容
    		</view>
    		
    		
    		
    		
    		<!-- 底部标签栏 -->
    		<view class="appTabbarWrapper" style="height: 30px;">
    			<view class="appTabbar">
    				底部标签栏
    			</view>
    		</view>
    		<!-- 底部标签栏 - 占位空间 -->
    		<view style="height: 30px;"></view>
    		
    	</view>
    </template>
    
    <script setup>
    	
    </script>
    
    <style>
    	       
    </style>
  3. OK!

其他

  1. "page 相当于 body 节点..."
    页面样式与布局 | uni-app官网
  2. <match-media :min-width="375" :max-width="800">
    <view>页面宽度介于(375,800)时显示</view>
    </match-media>
    match-media | uni-app官网

ending...

相关推荐
毕设源码-朱学姐4 小时前
【开题答辩全过程】以 基于uniapp的疫苗预约系统为例,包含答辩的问题和答案
uni-app
CHB20 小时前
uni-app,你的最佳vibe coding搭子
uni-app·vibecoding
怀君1 天前
Uniapp——Android离线打包自定义基座教程
android·uni-app
李慕婉学姐1 天前
【开题答辩过程】以《基于uni-app框架的助学管理系统的设计与实现》为例,不知道这个选题怎么做的,不知道这个选题怎么开题答辩的可以进来看看
微信小程序·uni-app
爱吃的强哥1 天前
uni-app 开发微信小程序注意点
微信小程序·小程序·uni-app
2501_915918412 天前
TCP 抓包分析在复杂网络问题中的作用,从连接和数据流层面理解系统异常行为
网络·网络协议·tcp/ip·ios·小程序·uni-app·iphone
じòぴé南冸じょうげん2 天前
APP本地调试正常,但是打包后出现账号密码解析错误,且前端未使用加密解密
小程序·uni-app·web app
快起来搬砖了2 天前
UniApp 路由配置实战:从全局守卫到 404 页面优雅处理
uni-app
5335ld2 天前
uniapp-APP端table列表左侧第一列固定、头部固定
windows·uni-app
一个假的前端男2 天前
uni-app App 端长按录音的工程级实现
uni-app