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

相关推荐
anyup2 天前
uView Pro X 1.0.0 发布:全面支持 uni-app x 蒸汽模式,80+ 组件
前端·uni-app·ai编程
zhongben123_2 天前
从零开发一个打车APP:技术选型、系统架构与成本评估指南
大数据·运维·ios·系统架构·uni-app·web app
天蒙蒙亮3 天前
打安卓apk包+“应用商城”发布
前端·uni-app
ModyQyW3 天前
vite-plugin-uni-pages 0.6:统一扫描规则,开发期少重启
前端·uni-app
Software攻城狮3 天前
【uniapp和普通web 端开发的区别】
前端·uni-app·notepad++
2501_915921433 天前
iOS 实时日志怎么看?KeyMob 的日志过滤、崩溃报告与符号化
android·ios·小程序·https·uni-app·iphone·webview
郑州光合科技余经理4 天前
同城小程序开发:同一笔单在用户端和商家端各显示到哪
android·java·开发语言·前端·后端·uni-app·php
普通人64 天前
uniapp模版JS
开发语言·javascript·小程序·uni-app·1024程序员节
wiseyao12194 天前
uniapp scroll-view滚动到最后
前端·javascript·uni-app
红红谈说4 天前
同一套产品两个技术栈,双版本前端工程差异怎么收敛?
前端·uni-app·vue3·前后端分离·双版本维护·接口约定