二、支付宝小程序前端样式的设计.acss样式详解

html-css015

二、支付宝小程序前端样式的设计.acss样式详解,第1张

在视频中已经说过了,小程序的设计思想和原生app的设计思想颇为相似,基本的应用单元为页面。当然对于一个页面来说每一个元素的放置位置在哪儿以及显示成什么样子这个是由 样式来决定的 。我们知道在web开发中样式是在css文件中规定的,叫做层叠样式表 (Cascading Style Sheets)。其实在APP中样式的约束也是使用css,在支付宝小程序中也是使用css不过文件的后缀是.acss而且对css3进行了扩充而已。

那么在支付宝小程序中的.acss和微信小程序中的.wxcss没有什么两样。 上边已经说了.acss其实包含了css3那么它还有一些新的特性是css3中不具备的,让我们一一看看

第一次看到这个东西也能猜到他是干什么用的。在css中我们知道规定大小一般使用像素(px)这个单位。比如显示生活中我们说房子128㎡那这儿的单位是平方米,在开发中需要更加精准的大小就是px像素。像素就非常精细了因为在我们显示屏幕中像素是最小的显示单元。这个道理如果不懂的话就找个LED屏幕仔细看,LED屏幕上一个一个的发光二极管可以想象为像素。

我们知道手机屏幕有大有小,就拿iPhone来说,iPhone 6 plus比iPhone 5要大。那么就说明plus的像素比5要多。对比:

加入有一个160px宽度的红色矩形在这两种手机中的位置如下:

rpx(responsive pixel)可以根据屏幕宽度进行自适应。如何自适应呢?看下边的分析:

看下图:

在模块化开发中我们有时候不得不在页面中使用其他的第三方库的样式,而第三方库的样式是保存在第三方包中的,我们不可能全部复制到我们的.acss文件中,那最好的办法就是导入了。在样式表中导入其他外联样式表。

当然仍旧支持内联样式和class属性制定样式类,如

选择器和css3的保持一致。一般有class=”test”类选择器和id=”test”的id选择器。当然在支付宝小程序的样式中特殊的地方就是:

※ .a- 或者 .am-为前缀的选择器已经被系统占用所以不要使用;

※ 不能使用属性选择器,例如,以下写法不被支持:

我之前说过小程序开发的应用单元为页面。其实我们在.axml中写的页面并不包含页面容器,就相当于我们做一个页面但是body标签不用写那如果我们要改变整个页面的背景怎么办呢?其实有一个固定的选择器。例如:

可以通过 page 元素选择器来设置页面容器的样式,比如页面背景色:

在你想改变页面容器的页面中定义该样式也可以,全局定义也可以,例如我想将test这个页面的页面容器背景设置为蓝色,就可以再pages目录下的test目录下找到test.acss在其中定义page的样式

下节是视图层讲解,如果有任何问题可以再下方给我留言或者发邮件到 [email protected] 我在收到邮件后会回复。

WXSS (WeiXin Style Sheets)是一套样式语言,用于描述 WXML 的组件样式。WXSS 用来决定 WXML 的组件应该怎么显示。为了适应广大的前端开发者,WXSS 具有 CSS 大部分特性。同时为了更适合开发微信小程序,WXSS 对 CSS 进行了扩充以及修改。与 CSS 相比,WXSS 扩展的特性有:(1)尺寸单位(2)样式导入尺寸单位rpx(responsive pixel): 可以根据屏幕宽度进行自适应。规定屏幕宽为750rpx。如在 iPhone6 上,屏幕宽度为375px,共有750个物理像素,则750rpx = 375px = 750物理像素,1rpx = 0.5px = 1物理像素。样式导入使用@import语句可以导入外联样式表,@import后跟需要导入的外联样式表的相对路径,用表示语句结束。

微信小程序申请前的准备:

首先,你需要注册一个小程序账号。需要用一个没注册过公众号的邮箱注册。注册过程中需要很多认证,比较繁琐。如果暂时只是试水、没有发布的打算,那么只要完成基本信息填写就可以,不需要完成微信认证。

之后,就可以在公众平台使用注册的帐户进行登录。

然后,在主页面左边列表中点击设置,再设置页面中选开发设置,就可以看到AppID。而AppID 可以用于在开发工具中进行登记,使用开发工具的高级功能。你可以到官网下载开发工具。

开始项目:

打开开发者工具,选择小程序选项,然后直接点击「添加项目」按钮。我们可以在这个步骤,填入刚才注册的时候使用的 AppID。

如果项目目录中的文件是个空文件夹,会提示是否创建 quick start 项目。

选择「是」,开发者工具会帮助我们在开发目录里生成一个简单的 Demo。

这个 Demo 拥有一个完整的小程序的大概框架。

1. 框架

我们首先看一下官方提供的 Demo 含有的目录:

app.js:小程序逻辑、生命周期、全局变量。

app.json:小程序公共设置、导航栏颜色等,不可以注释。

app.wxss:小程序公共样式,类似 CSS 。

小程序页面构成类似这样:

每一个小程序页面是由同路径下同名的四个不同后缀文件的组成,如:index.js、index.wxml、index.wxss、index.json

微信小程序中的每一个页面的路径和页面文件名,都需要写在app.json的pages中,且pages数组中的第一个页面是小程序的首页。

这四个文件按照功能可以分成三个部分:

配置:json 文件

逻辑层:js 文件

视图层:wxss.wxml 文件

在 iOS 上,小程序的逻辑代码运行于 JavaScriptCore 中,而在 Android上,这个任务则是交给 X5 内核来完成。

在 开发工具上, 小程序的 JavaScript 代码是运行在 NW.js(Chrome 内核) 中。这也导致开发工具上的效果跟实际效果有所出入。

2. 组件

微信提供了许多组件,主要分为八种:

这其中,包含了view、scroll-view、button、form等普通常用的组件,也提供了地图mapcanvas

组件主要属于视图层,通过 WXML 来进行结构布局,类似于 HTML。样式则通过 WXSS 来定义和修改,它的语法和使用都近似 CSS。

组件使用语法实例:

<><>

3. API

网络

媒体

数据

位置

设备

界面

开发接口

网络请求接口包含了普通的 HTTPS 请求,支持上传、下载、Socket,基本上满足了我们开发中所需要的网络需求。

这些 API 属于逻辑层,写在 JS 逻辑文件中。

使用实例:

wx.getLocation({ type: 'wgs84', success: function(res) { var latitude = res.latitude var longitude = res.longitude var speed = res.speed var accuracy = res.accuracy } })

可以到官方文档 – API 查看其它 API 的使用方法。

编译运行

1. 模拟器调试

我们可以在微信提供的开发者工具中,使用模拟器查看小程序运行的效果。

之前我们提过,小程序的运行底层不同,这也导致在模拟器上的效果,会与在手机上运行有些差异。

2. 真机调试

在左边的选项栏中,选择项目,然后点预览会生产一个二维码,用管理员微信号扫一扫,就可以在真机上看实际效果。