没接触过 JavaScript、CSS、HTML的小白直接开始接触微信小程序的开发,在了解了各个部分的作用以后,布局的时候就发现:怎么这么多单位???

px、rem、rpx、vw、vh、n%

为了不总是用得一脸懵逼,还是花点时间去好好归纳一下。

px:就是 Pixel 的缩写,就是指像素,图片采样的基本单位。

rem:把页面按比例分割达到自适应的效果。规定屏幕宽度为 20 rem,根据屏幕大小动态的设置 fontsize,来达到不同的分辨率下有一样的效果。

rpx:这个单位是微信小程序中特有的尺寸单位,也是把页面按比例分割达到自适应的效果。规定屏幕宽为750rpx,就是把屏幕宽度分成750部分,根据屏幕宽度进行自适应。可与 rem 换算:1 rem = (750/20) rpx =37.5 rpx

如在 iPhone6 上,屏幕宽度逻辑像素为375px,共有750个物理像素,则750rpx = 375px = 750物理像素,1rpx = 0.5px = 1物理像素。所以开发微信小程序时用 iPhone6 作为视觉稿的标准,单位换算相对简单 。

vw视窗宽度,1vw等于视窗宽度的1%。

vh视窗高度,1vh等于视窗高度的1%。

n%父级容器的宽度百分百。

一般情况下,百分比+ rpx 就已经足够使用了 ,其他几个单位甚至可以几乎不用。

实际使用中的问题

在页面的wxss文件中设置父级容器 container 和容器里的组件 detail 时,如果我这样设置:

.container{background-color: blue; //container 背景色是蓝色height: 80%;            //我想让高度占屏幕的80%display: flex;flex-direction: column;align-items: center;justify-content: space-around;
}
.detail{background-color: yellow; //detail 背景色是黄色width: 100%;display: flex;flex-direction: column;
}

就会出现容器 container 占的比例不对,80%未生效的情况。

原因是 height: 80% 属性是子节点相对于父容器来说,此属性生效的必要条件是父容器必须具有具体的高度信息

而我这里容器 container 外面已经没有父容器了。解决办法有两个:

1、使用 vh 单位:

.container{background-color: blue; //container 背景色是蓝色height: 80vh;           //让高度为 80vhdisplay: flex;flex-direction: column;align-items: center;justify-content: space-around;
}
.detail{background-color: yellow; //detail 背景色是黄色width: 100%;display: flex;flex-direction: column;
}

2、在前面加上有高度信息的page{}

page{height: 100%; //这里用 100% 或者 100vh 都可
}
.container{background-color: blue; height: 80%;display: flex;flex-direction: column;align-items: center;justify-content: space-around;
}
.detail{background-color: yellow;width: 100%;display: flex;flex-direction: column;
}

效果如下:

微信小程序布局中的单位及使用:px、rem、rpx、vw、vh、n%相关推荐

  1. 微信小程序布局技巧(三)

    微信小程序布局技巧(三) 前言 小程序适配 物理像素 小程序中的px px和rpx转换 应用 尾巴 前言 本文是微信小程序(本文后面统称小程序)布局技巧系列最后一篇文章,主要说明小程序的屏幕适配问题. ...

  2. 全栈开发工程师微信小程序-上(中)

    全栈开发工程师微信小程序-上(中) width: 750rpx; 复制代码 750rpx代表与屏幕等宽,rpx的缩写responsive pixel,这个单位是可以根据屏幕大小进行自适应调整的像素单位 ...

  3. 关于微信小程序开发中遇到的缺少game.json问题的解决

    关于微信小程序开发中遇到的缺少game.json问题的解决 参考文章: (1)关于微信小程序开发中遇到的缺少game.json问题的解决 (2)https://www.cnblogs.com/ygxd ...

  4. 解决微信小程序开发中wxss中不能用本地图片

    微信小程序开发中wxss中不能用本地图片,我们可以用将我们的图片传到服务器上,然后直接引用在线地址.但是当我们没有服务器时,我们可以用"图床",这个具体可以百度.这里我们用第二种方 ...

  5. 微信小程序 data中数据值的更改与储存

    微信小程序 data中数据值的更改与储存 this.setData this.setData 直接更改 success(res){this.setData({list:res.data.data}) ...

  6. 微信小程序font-family中提供的十四种字体

    微信小程序font-family中提供的十四种字体 链接:https://blog.csdn.net/include_IT_dog/article/details/98382276

  7. 解决微信小程序IOS中使用picker弹出内容和手机软键盘重叠的问题

    解决微信小程序IOS中使用picker弹出内容和手机软键盘重叠的问题 项目需求: 一个信息提交页面:有input输入框,有picker选择器 遇到的问题: 点击input输入框时,手机自动弹出键盘,但 ...

  8. 微信小程序map中polyline的坑

    微信小程序map中polyline的坑 polyline polyline层级 polyline 如果大家写过小程序的map地图应该就知道polyline的功效,说白了就是画线的,我在自己的项目中主要 ...

  9. 微信小程序开发过程中出现的内存泄漏问题

    微信小程序开发过程中出现的内存泄漏问题 问题描述 微信小程序项目中,有两个页面多次来回切换,(我这个项目数因为 有 再来一次,和 回顾本次 的功能 所以要在答题页和分数页来回切换)就会报错 VM333 ...

最新文章

  1. [个人博客作业Week7]软件工程团队项目感想与反思
  2. python和java一样吗-Python与Java的区别与优劣?
  3. c语言常见50题 及答案(递归 循环 以及常见题目)
  4. Windows进程与线程学习笔记(八)—— 线程切换与TSS/FS
  5. Modelsim10.7中文注释乱码问题
  6. matlab 水文频率曲线,【求助】如何计算水文频率,外行求教 - 地学 - 小木虫 - 学术 科研 互动社区...
  7. mysql 组复制 不一致_MySQL主从复制什么原因会造成不一致,如何预防及解决
  8. 在pytorch中使用tensorboard
  9. IDEA怎么导入一个maven项目
  10. 文字处理技术:试图通过多次布局解决布局问题的思路是否可以避免?
  11. sun的java认证考试_Sun Java认证考试科目
  12. 智遥工作流为SAP节省License实例
  13. MacBook外接显示器的显示模式介绍及设置说明(分屏/多屏)
  14. linux 管理部门打印,Linux打印机相关的命令-打印管理_Linux常用命令大全
  15. 虚拟机桌面切换命令行
  16. 靠贴牌飞利浦冲击上市,德尔玛的自有品牌又该如何“起跳”?
  17. 字符集和编码 UNICODE、ANSI、UTF-8、GB2312 都是什么鬼
  18. 【Linux】冯诺依曼体系结构和操作系统概念
  19. Oracle AWR管理与维护
  20. Code Review Checklist

热门文章

  1. 四川大学和东北大学计算机科学,39所985高校分档及最强专业盘点
  2. Go语言从INI配置文件中读取需要的值
  3. vue.js 调用java_Vue.js调用后端java接口的实例代码
  4. J Jack与Pony的战斗
  5. ADB详解与fastboot以小米为例
  6. 最后一周 | 微生物组-扩增子16S分析和可视化(线上/线下同时开课,2021.7)
  7. python 支持的数据库_1.16 Python的数据库支持 - Python 全栈
  8. Android电子书集合
  9. 复古传奇登录显示服务器断线,复古传奇闪退黑屏怎么解决-复古传奇闪退的解决方法_快吧手游...
  10. 瞄准C端,「叮咚买菜」能否成为“预制菜”破局者?