这章以后的四章都是介绍小程序样式文件——wxss 的使用,分为以下三个部分

一、尺寸方案

二、样式导入

三、选择器

这章先来讲wxss的尺寸单位—— rpx

wxss的定义:

WXSS( WeiXin Style Sheets )是⼀套样式语言,用于描述 WXML 的组件样式。

与 CSS 相比,WXSS 扩展的特性有:

响应式⻓度单位 rpx 样式导⼊

rpx (responsive pixel): 可以根据屏幕宽度进行自适应。

我们规定屏幕宽为 750rpx ,

如在 iPhone6 上,屏幕宽度为 375px ,共有750个物理像素, 则 750rpx = 375px = 750 物理像素, 1rpx = 0.5px = 1 物理像素 。

小程序中,若需要做一个页面布局,实现页面的元素大小跟随屏幕改变而发生改变的话,

则需要用到rpx单位。

接下来,我们用代码来演示以上知识点。

第一步先来定一个需求

如下图所示,此设计稿为 750px,里面包含200px × 200px 的页面,

并且所含文字的像素是40px

我们要将此设计稿和下图右侧的屏幕相匹配:

屏幕为375rpx,里面的页面是100 ×100 ,文字是20px

我们要做的就是将750rpx 的设计稿等比例变换为375rpx 的比例

这就是我们的需求了,接下来通过代码一步步实现了~~

1、打开app.json 文件,新建demo05 页面

2、打开demo05.wxml 文件,删掉原先代码,加入view 标签,代码如下

rpx

这里,要补充一点:

小程序中不需要手动引入样式文件,不需手动添加link 标签,

只需确保demo05 文件夹下的文件名称统一均为 demo05 即可,

小程序会自动匹配同名文件并引入。

3、打开demo05.wxss 文件,删掉原先代码,写入如下代码:

宽:200px;高:200px;字体大小:40px;背景颜色:蓝色。

view{ width: 200px; height: 200px; font-size:40px; background-color: aqua;}

保存后,界面如下所示:

可以看到,现在屏幕的宽度为375px,机型为iphone6

若我们先直接将屏幕 由375px 改为 750px , 蓝色方块的比例会随之变化吗?

修改后(若找不到750选项,可点击机型--自定义,手动添加屏幕数据),

对比前后的蓝色部分,可明显看到是一样的!

虽然屏幕比例扩大了很多,但是蓝色区域还是未随屏幕比例发生任何改变!

所以要实现这一需求,就需先将页面中某些元素的单位由 px 修改为rpx,或者修改百分比也行,

即换算单位!

比如:设计稿的像素为750, 则750px =750rpx, 也就是 1px =1rpx

4、 我们将demo05.wxss 中的px 修改为rpx,

由这样:

view{ width: 200px; height: 200px; font-size:40px; background-color: aqua;}

变为这样:

view{ width: 200rpx; height: 200rpx; font-size:40rpx; background-color: aqua;}

我们的需求中,是要实现375px 的屏幕, 所以,375px=750rpx,即1px=2rpx 根据这个比例,若将屏幕界面的机型改为 iphone6 (375px),那蓝色区域的部分应该缩小一半!

5、将屏幕界面的机型改为 iphone6 (375px),观察蓝色区域的大小变化

对比很容易发现,蓝色部分已经随屏幕的比例发生相应改变了!

这也就实现了我们的第一个需求!哈哈


上面的例子中,750px 和375px 是等比例关系,很容易换算

那如果现在的设计稿宽度是100px,长度未知,(用page表示),

用以上代码如何实现不同宽度的页面适配呢?

1、换算

page=750rpx

1px=750 rpx/page,将宽度 100px 代入后(两边都 ✖ 100)

100px=750rpx × 100/page

按照小学课本里的换算,

这里100px的赋值可以直接代入到代码中去

比如这里page=375,width的值还是100px,

view{ width: 100rpx; height: 200rpx; font-size:40rpx; background-color: aqua;}

将 100px=750rpx × 100/375 写入 width 中:

view{  width: 750rpx× 100/375;  height: 200rpx;  font-size:40rpx;  background-color: aqua;}

但是,

这不是完全的数学运算,这里的这种直接赋值也是不正确的!!!

不能直接写成 width: 750rpx× 100/375 这种形式的!

切记!

它需要一个属性来做外衣—— calc 属性

2、在demo05.wxss 中,代码的 width 部分加入 calc 属性 ,其余不变,代码如下:

view{ width: calc(750rpx*100/375); height: 200rpx; font-size:40rpx; background-color: aqua;}

敲黑板:

在使用calc属性时,比如上述代码 width: calc(750rpx*100/375) 中, 750与rpx之间是不能有空格的! 运算符* / 两边也是不能加空格!

保存后,界面如下:

3、改变屏幕比例,改为750px,观察蓝色部分的大小变化!

对比来看,蓝色部分明显已经发生变化!我们的需求完成了!

所以,最后总结:

要想实现不同宽度的页面适配,记住两点即可

100px=750rpx × 100/page

使用calc 属性 来书写

大家实操后感觉如何呢?

欢迎下方留言给我,

有疑问可以直接私信我哈~~~

小程序input wxss_19. 教你零基础搭建小程序:wxss-尺寸单位相关推荐

  1. 局部配置和全局配置_06. 教你零基础搭建小程序(解读全局配置文件-tabBar字段)...

    自从开始在知乎上发教程后,发现一个事情啊, 大家对于我写的教程,都在偷偷地收藏~~ 但是, 却没有银点赞~ 知乎这个平台吧,点赞的分量比收藏更大, 这里也不是要赞(我知道自己还能做的更好), 只是希望 ...

  2. 点击button后改变文字_27. 教你零基础搭建小程序:小程序的常见组件—button

    筒子们,这一章接着讲Button 标签. 开放能力的属性 button标签的开放能力是指open-type 属性. 其中,这个属性的合法值包括如下: 这一部分呢,需要分为两个方式来演示. 一是可在模拟 ...

  3. input 事件_14. 教你零基础搭建小程序:小程序事件绑定(1)

    图文版 本章以及下一章学习小程序的事件绑定,我们通过一个案例来讲解其中相关的知识点,便于大家理解哦~~ 首先,先来看这个案例的需求. 我们使用画图工具,先在上面绘制一个小程序页面, 如下图: 再在页面 ...

  4. axure8 事件改变样式_15. 教你零基础搭建小程序:小程序事件绑定(2)

    图文版 本章继续讲解小程序的事件绑定的相关知识,上一章我们实现了第一个需求, 当在输入框中输入文字,比如123, 会如实地映射至下面的标签文件中,显示123: 如果上方的输入框文字改变,对应下方的标签 ...

  5. 小程序如何用data的数据控制页面展示_17. 教你零基础搭建小程序:小程序事件绑定(1)

    本章以及下一章学习小程序的事件绑定,我们通过一个案例来讲解其中相关的知识点,便于大家理解哦~~ 首先,先来看这个案例的需求. 我们使用画图工具,先在上面绘制一个小程序页面,如下图: 再在页面的最上方放 ...

  6. 微信小程序怎么在wxml中插入多个图片_22. 教你零基础搭建小程序:小程序的常见组件(2)- image

    大家好~今天讲小程序的常见组件-- image 图片标签 小程序中的图片标签相当于 web 中的图片标签 ,但也存在着不同之处. 例如:小程序在后期要打包上线时,对图片的大小是有要求的,图片要< ...

  7. 【零基础微信小程序入门开发一】小程序介绍及环境搭建

    什么是小程序? 微信小程序,小程序的一种,英文名Wechat Mini Program,是一种不需要下载安装即可使用的应用,它实现了应用"触手可及"的梦想,用户扫一扫或搜一下即可打 ...

  8. 零基础学小程序 —— 模板样式(三)

    目录 前言 1.什么是 WXSS 2.WXSS 和 CSS 的关系 3. rpx 3-1 什么是 rpx 尺寸单位 3-2 rpx 的实现原理 3-3 rpx 与 px 之间的单位换算 4. 样式导入 ...

  9. 零基础学小程序006(后台数据的获取与解析)----请求服务器json数据展现到小程序上

    视频讲解地址:https://edu.csdn.net/course/play/9531/265552 小程序云开发讲解视频:https://edu.csdn.net/course/detail/96 ...

最新文章

  1. 全球知名物联网研究机构预测:2016物联网发展形势
  2. 程序员随笔:使用来自服务器的图像(有源码)
  3. 近90%公司亏损,泡沫破裂期将至:对于AI投资人的耐心还多吗
  4. Bootstrap 4:如何使顶部固定的Navbar保持在容器中而不拉伸?
  5. 从多级延迟触发器到边沿检测
  6. 大学计算机基础网络配置实验报告答案,大学计算机基础实验报告2.doc
  7. spring 14-Spring框架JDBC操作
  8. 什么样的外链才是高质量的外链|网站优化
  9. 通过ODBC连接PostgreSQL和Greenplum
  10. unity3d自定义Toggle组件,解决设置isOn自动调用方法
  11. GA算法(遗传算法) ——以求解achley,rastrigin函数为例
  12. SpringBoot 配置系列:(二)多环境配置
  13. php多张图片制作成视频教程,如何将多张图片转换成视频?快速制作电子相册的方法...
  14. Canvas画椭圆的方法
  15. 笨方法学Python(1-5)
  16. bzoj1146整体二分+树链剖分+树状数组
  17. 史上最强css、html总结,看完涨薪不再是梦
  18. FAQ02【Hive】:Hive连接后出现一堆乱七八糟的日志
  19. 枚举进程:ring3-ring0
  20. 张利国,龚海平,王植萌.android移动开发入门与进阶,开题报告-基于Android的手机音乐播放器的设计与实现.doc...

热门文章

  1. 收藏!企业数据安全防护5条建议
  2. 第一次更名为OpenInfra的“她”,给我们带来了哪些惊喜?| 技术头条
  3. es6 map与set
  4. usleep延时0.毫秒_【进阶】用swoole实现订单的延时处理(自动取消,还原库存等)...
  5. pyside2 镜像安装_pyside2 镜像安装_【PySide2学习笔记】0_下载安装
  6. jmeter+mysql+set_jmeter学习指南之操作 mysql 数据库
  7. 项目启动时flowable报错提示 version mismatch: library version is *, db version is *
  8. js提交java后台,双引号转义为amp;quot;解决办法……StringEscapeUtils.unescapeHtml4完美解决
  9. flowable modler为任务节点增加自定义属性
  10. springboot启动报错LoggerFactory is not a Logback LoggerContext but Logback...