欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 新车 > 前端基础之《Vue(20)—移动端REM布局》

前端基础之《Vue(20)—移动端REM布局》

2025/6/19 21:35:23 来源:https://blog.csdn.net/csj50/article/details/148739882  浏览:    关键词:前端基础之《Vue(20)—移动端REM布局》

一、什么是webapp

1、长的像app,交互也像app的H5页面。
webapp不是App,不需要安装,手机网页直接打开。

二、移动端web的布局方案

1、例如:rem布局、vw/vh布局、flexible布局。
推荐使用rem布局,解决不同手机之间的样式兼容性问题。

2、原因
手机像素密度不一样,屏幕宽度、屏幕分辨率不一样。
在移动端写样式一般不用px做单位,px是绝对单位,要用相对单位去做。

3、rem.js

// 作用:重置html的font-size大小
// 让html根字体的大小,等于当前屏幕px像素的10分之1function resetRootFZ() {// 1.通过dom操作,找到htmlvar oHtml = document.querySelector('html')// 2.获取这个html的宽度var w = oHtml.getBoundingClientRect().width // px(当前屏幕的总宽度)// 3.设置根字体的大小等于html节点的宽度的十分之一oHtml.style.fontSize = w/10 + 'px'
}// 调用这个方法
resetRootFZ()// 当window窗口尺寸变化时,重新设置根字体的大小
window.addEventListener('resize', function(){// 屏幕发生resize事件,重新设置根字体resetRootFZ
})

4、在index.html的<head>引入

<script src="./rem.js"></script>

5、比较
(1)类型一

(2)类型二

6、css的单位
(1)rem: root font size
.box {
    width: 2rem;
}
宽度是html根字体的两倍。

(2)em: 相对于最近一个父元素的fontSize

(3)px: 绝对单位

(4)vw vh

三、UI稿量尺寸

1、量稿子的单位是px

2、移动端的UI搞,一个轮播图,宽度是750px,高度是352px

3、352px怎么转换成rem
750px对应10rem,352px则是:352*10/750 = 352/75

4、vscode里以后计算用插件“px to rem”

四、移动端组件库

1、ToC项目样式复杂,有设计稿,组件往往很难自己实现,引入第三方开源组件

2、vant-ui2是经典的移动端组件库,PC端不能用

3、安装
yarn add vant@latest-v2

4、按需加载组件
yarn add babel-plugin-import -D
安装成功后记录在package.json中,-D表示加到devDependencies环境需要的包中

dependencies:表示src代码目录中需要的包
devDependencies:表示环境中需要,src中用不到

5、配置按需加载组件
babel.config.js

module.exports = {presets: ['@vue/cli-plugin-babel/preset'],// 支持vant-ui组件的按需加载plugins: [['import', {libraryName: 'vant',libraryDirectory: 'es',style: true}, 'vant']]
}

6、按需导入代码
上线打包时,都建议按需求导入。一个一个导入并注册。

// 按需导入
import { Button } from 'vant'
Vue.use(Button)

7、本地开发
为了提高开发效率,先一次性注册。

// 本地开发
import Vant from 'vant'
import 'vant/lib/index.css'
Vue.use(Vant)

五、分析页面

1、按组件分析页面

搜索框
品类轮播图
商品轮播图
商品列表(懒加载,类似瀑布流,分页查询)
底部tabbar导航

2、外页内页
外页:通过tabbar、或者菜单就能访问到的页面
内页:在菜单上点不到,通过某些交互进去的,比如商品详情

六、代码方式组织

1、在src/components目录下建一个index.js

import JDtabbar from "./tabbar/JDtabbar.vue"export {JDtabbar
}

把所有的公共组件都放在这个目录中,统一的导入、导出:

import { JDtabbar } from '@/components'

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词