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

这章以后的四章都是介绍小程序样式文件——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

3e3ab74c9337069cd54b4189ecbd973d.png

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

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

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

973dea4ca915e6416e6192ad4554aa48.png

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

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;}

保存后,界面如下所示:

9a5784dbfb236978943164a9d789bd84.png

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

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

d975c6c31ba67849f3b35ab1acf0e18d.png

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

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

a0b7f419de6f20a7288a720256d9a107.png
db9509ec299d33dc0c9ea20a1f3ff4ca.png

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

所以要实现这一需求,就需先将页面中某些元素的单位由 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),观察蓝色区域的大小变化

fc49ae941854826bc4a2143838a0f25d.png

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

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


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

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

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

8b0d1df695a311b086b68b8ad54360e9.png

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之间是不能有空格的! 运算符* / 两边也是不能加空格!

保存后,界面如下:

b8f0a95a2ae3f713c366e5af7813f33e.png

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

b728929a5df1802e2f9be97cfafb837c.png
2fc451bc95558cc588c537a4c7162ae2.png

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

88f891c4df997246a501ca3cec386df0.png

所以,最后总结:

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

100px=750rpx × 100/page

使用calc 属性 来书写

大家实操后感觉如何呢?

欢迎下方留言给我,

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/529214.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

某一个接口403 其他接口可以调通_Neo的务实外设指南 篇三十六:一个就够,65W快充+C口混插+最多6个设备 - 飞利浦65W摩天轮插座_插座...

2020-10-26 15:29:0623点赞23收藏2评论嗨,大家好!我是沈少!之前晒雷电3扩展坞的时候,已经有小伙伴注意到我用来提供PD充电的是一个很小巧的魔方插座。也有朋友私下提醒我,这类产品虽然支持PD快充协议,但一般…

linux java 获取路径怎么写_linux中java获取路径怎么写?

linux中java获取路径怎么写?在Unix/Linux中,路径的分隔采用正斜"/",比如"cd /home/java"。在java的代码开发中 是代表转义字符。相对路径和绝对路径. 指的是当前目录.. 指的是当前目录的上一级目录./book表示当前目录下的…

layerconfirm 自动关闭问题 没有阻塞问题_微信新版本自动更新?赶紧关闭这个功能...

前不久安卓用户也迎来了微信新版本的更新不少伙伴惊呼“猝不及防,一觉醒来发现微信自动更新了”一时间还冲上了话题的热搜榜究竟是怎么肥事?小移了解到:原来是因为部分用户设置了“微信自动更新”那么问题来了,如何关闭微信自动更…

list steam_在 Steam 中国版上玩单机游戏也会受到防沉迷系统管控

今天看到一个消息,Steam 中国版,也就是所谓的“蒸汽平台”,最近正在测试。重点在于,哪怕你玩“理论上无需联网”的单机游戏,游玩时间也会受到著名的防沉迷系统的限制。以下是我在动点科技编写的新闻全文(原文链接是界面…

java的默认访问权限_java类的访问权限

1.解析Java有四种访问权限, 其中三种有访问权限修饰符,分别为private,public和protected,还有一种不带任何修饰符。private: Java语言中对访问权限限制的最窄的修饰符,一般称之为“私有的”。被其修饰的类、属性以及方…

github流程图_逆天插件,VSCode里也能画流程图了?Visio可以淘汰了?

vscode-drawio简介网络之大,人才百出,在开源背景下,一些功能只有你想不到,没有做不到。这不,对于写代码的程序员来说,竟然也可以在VSCode IDE里边写代码,边画逻辑流程图了。最近,在g…

spring aopalliance 包里都有什么_【九仓樱】翻包記 05 | 是什么让我的便当包里每天都带着小企鹅?!...

Sakura | 2020・05バッグ日記:< Whats in my bag ? >这里是一个全新的栏目&#xff0c;关于九仓樱の日常翻包初衷是想跟大家分享一些有趣好玩的东西想知道我到底有多少个包包吗&#xff1f;我的包包里都会有哪些你想不到的东西呢&#xff1f;LIST① MYKONOS 便当包② MY…

java setpaintmode 用法_详解Paint的各种set方法

(1) 在application配置文件中关闭硬件加速&#xff1a;android:allowBackup"true"android:hardwareAccelerated"false"android:icon"drawable/ic_launcher"android:label"string/app_name"android:theme"style/AppTheme" &g…

one more step_KDA新歌《MORE》的一些冷知识:伊芙琳换回原声,摩托车是定制的

原标题&#xff1a;KDA新歌《MORE》的一些冷知识&#xff1a;伊芙琳换回原声&#xff0c;摩托车是定制的KDA女团在2020年宣布回归后就引发了很多的关注&#xff0c;回归后也是推出了首支单曲《THE BADDEST》&#xff0c;这首歌在之后也引发了不少网友的模仿以及翻唱&#xff0c…

java jdbc连接 代码块_java 中JDBC连接数据库代码和步骤详解及实例代码

•创建一个以JDBC连接数据库的程序&#xff0c;包含7个步骤&#xff1a;1、加载JDBC驱动程序&#xff1a;在连接数据库之前&#xff0c;首先要加载想要连接的数据库的驱动到JVM(Java虚拟机)&#xff0c;这通过java.lang.Class类的静态方法forName(String className)实现。 例…

java数据库edit_Java数据库连接——JDBC基础知识(操作数据库:增删改查)

一、JDBC简介JDBC是连接java应用程序和数据库之间的桥梁。什么是JDBC?Java语言访问数据库的一种规范,是一套API。JDBC (Java Database Connectivity) API&#xff0c;即Java数据库编程接口&#xff0c;是一组标准的Java语言中的接口和类&#xff0c;使用这些接口和类&#xff…

java ssm 系统的搭建_SSM框架下的javaweb学生管理系统--搭建系统结构

业务需求&#xff1a;一个登录页面&#xff0c;一个学生展示页面&#xff0c;添加、修改、删除三个功能目的是给大家了解一个初级系统的构造&#xff0c;不写那么复杂的需求了。从第一步开始&#xff1a;创建项目打开eclipse&#xff0c;点击右上角的File-->New-->Dynami…

opencv 高通滤波和低通滤波_滤波电路合集(低通滤波,CLCП滤波,DLC滤波,CRC П滤波)...

常见低通滤波电路L 一阶滤波C 一阶滤波CL 二阶滤波RC 二阶滤波LC 二阶滤波RCR T型三阶滤波LCL T型三阶滤波CRC π三阶滤波CLC π三阶滤波开关电源 单级低通滤波回路DLC 型二阶滤波器开关电源 双级串联式低通滤波回路CLC П型滤波器1、工作原理介绍a.输入正脉冲时,先给C1充电,充…

matlab语音信号处理实验_现代通信综合实验系统平台

现代通信综合实验系统平台近30年来&#xff0c;随着我国电信行业的迅猛发展&#xff0c;该行业的发展水平已成为衡量一个国家实力的一大关键因子。行业的发展同时&#xff0c;为当代相关专业大学生创造了极大的就业市场,市场对通信类人才有着极大的需求。培养一代全面型通信类人…

iphone储存空间系统怎么清理_教你快速清理 iPhone 系统缓存垃圾,拒绝卡顿!

「 改变能改变的一切&#xff0c;接受不能改变的一切&#xff01;」▼“iPhone存储空间”里的系统为何占用了几十G的甚至上百G的内存&#xff0c;如何清理&#xff1f;当我们使用 iPhone 一段时间之后&#xff0c;系统或应用中会出现一些多余的缓存数据&#xff0c;如果长时间不…

倒N字形排列java_Java排序8大算法实现

概述排序有内部排序和外部排序&#xff0c;内部排序是数据记录在内存中进行排序&#xff0c;而外部排序是因排序的数据很大&#xff0c;一次不能容纳全部的排序记录&#xff0c;在排序过程中需要访问外存。我们这里说说八大排序就是内部排序。当n较大&#xff0c;则应采用时间复…

cross_val_score 如何对孤立森林_【收藏】森林防火手抄报素材汇总!

森林防火手抄报模板参考【文字素材参考】01森林防火根据森林火灾燃烧中央地点&#xff0c;蔓延速度&#xff0c;受害部位和程度&#xff0c;大致可把森林火灾分为三大类:一.地表火 二.树冠火 三.地下火。以受害森林面积大小为标准&#xff0c;森林火灾分为以下四类:1.森林火警:…

pb9 调用系统语音_成都电销系统一个月多少钱_选择灵狐传媒_收费透明

灵狐传媒表示&#xff1a;成都电销系统一个月多少钱_选择灵狐传媒_收费透明,在成都想要找一家专业的电销系统&#xff0c;今天小编带您看看该怎么选择吧&#xff0c;和研发实践&#xff0c;融合互联网、云计算及人工智能、通信、大数据等技术&#xff0c;研发推出了以人工智能为…

java thread 线程销毁_手把手带你了解Java线程的实现方式及生命周期原理

前言我们在工作中线程技术很多情况下都能用的到&#xff0c;而且我们在面试的时候&#xff0c;线程技术基本上也是必问的。今天我来从线程的实现方式以及线程的生命周期做一个全面的讲解与分析&#xff0c;帮助大家能更好的去了解线程技术。概念我们先来了解下线程和进程的概念…

python自动化_python自动化测试-Behave框架的用法介绍 - python测试学习

测码学院 Behave框架的用法介绍众所周知&#xff1a;行为驱动开发((behavior-drivendevelopment&#xff0c;BDD)是一种基于敏捷软件开发的方法。它可以鼓励开发人员&#xff0c;业务参与者和QA人员之间的协作。作为另一个Python自动化测试框架&#xff0c;“Behave”允许团队…