【懒人教程】如何让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...

相关推荐
anyup16 小时前
仍然是简单一句话,uView Pro Starter 一键清理 Skill 发布
前端·人工智能·uni-app
00后程序员张18 小时前
怎么用 Egret(白鹭引擎)打包 iOS 应用并上架 App Store?
android·ios·小程序·https·uni-app·iphone·webview
xujuzheng19 小时前
2026深圳小程序/App/AI智能体开发公司选型指南(附本地服务商盘点)
数据库·科技·微信小程序·小程序·uni-app
郑州光合科技余经理21 小时前
本地生活系统:多业务订单字段怎么分账本导出
java·开发语言·前端·数据库·uni-app·php·ai编程
EatFan2 天前
Java接入支付宝 JSAPI 支付保姆教程(二):流程讲解与前后端代码讲解
前端·spring boot·后端·微信小程序·小程序·uni-app
bug总结3 天前
uniapp vue3全局方法注册使用
前端·javascript·uni-app
大佐不会说日语~3 天前
Android 16 下 uni-app APP 提示“网络连接失败”的排障与修复
android·uni-app
2501_915106323 天前
苹果App Store上架费用及流程全面解析
android·ios·小程序·https·uni-app·iphone·webview
白远山4 天前
家政服务派单平台搭建实战指南:从需求分析到系统设计全流程解析
java·开发语言·架构·uni-app·需求分析
宸翰4 天前
解决uni-app 中 SVG 图片在 iOS 端显示模糊问题
前端·uni-app