codecamp

支付宝小程序框架 ACSS·语法参考

ACSS 是一套样式语言,用于描述 AXML 的组件样式,决定 AXML 的组件的显示效果。

为适应广大前端开发者,ACSS 和 CSS 规则完全一致,100% 可以用。同时为更适合开发小程序,对 CSS 进行了扩充,ACSS 支持 px,rpx,vh,vw 等单位。

ACSS 已经帮开发者做了不同手机端的样式兼容性处理。

rpx

rpx(responsive pixel)可以根据屏幕宽度进行自适应,规定屏幕宽为 750rpx。以 Apple iPhone6 为例,屏幕宽度为 375px,共有 750 个物理像素,则 750rpx = 375px = 750 物理像素,1rpx = 0.5px = 1 物理像素。

设备 rpx 换算 px(屏幕宽度 / 750) px 换算 rpx(750 / 屏幕宽度)
iPhone5 1rpx = 0.42px 1px = 2.34rpx
iPhone6 1rpx = 0.5px 1px = 2rpx
iPhone6 Plus 1rpx = 0.552px 1px = 1.81rpx

样式导入

使用 @import 语句可以导入外联样式表,@import 后需要加上外联样式表相对路径,用;表示结束。

示例代码:

/** button.acss **/
.sm-button {
  padding: 5px;
}
/** app.acss **/
@import "./button.acss";
.md-button {
  padding: 15px;
}

导入路径支持从 node_modules 目录载入第三方模块,例如 page.acss:

@import "./button.acss"; /*相对路径*/
@import "/button.acss"; /*项目绝对路径*/
@import "third-party/page.acss"; /*第三方 npm 包路径*/

内联样式

组件上支持使用 styleclass 属性来控制样式。

style 属性

用于接收动态样式,样式在运行时会进行解析。行内样式不支持!important 优先级规则。

<view style="color:{{color}};" />

class 属性

用于接收静态样式,属性值是样式规则中类选择器名(样式类名)的集合,样式类名不需要带上.,多个类名间以空格分隔。请静态样式写进 class 中,避免将静态样式写进 style 中,以免影响渲染速度。

<view class="my-awesome-view" />

选择器

同 CSS3 保持一致。

注意:

  • .a-, .am- 开头的类选择器为系统组件占用,不可使用。
  • 不支持属性选择器。

全局样式与局部样式

  • app.acss 中的样式为全局样式,作用于每一个页面。
  • 页面文件夹内的 .acss 文件中定义的样式为局部样式,只作用在对应的页面,并会覆盖 app.acss 中相同的选择器。

本地资源引用

ACSS 文件里的本地资源引用请使用绝对路径的方式,不支持相对路径引用。例如:

/* 支持 */
background-image: url('/images/ant.png');
/* 不支持 */
background-image: url('./images/ant.png');

    

常见问题

Q:一个 axml 引用多个自定义组件或 template 模板、include 等,造成样式之间相互影响、样式污染怎么办?

A:请开发者自行通过名空间处理样式隔离。

Q:给页面设高度100%为什么没用?

A:添加一个绝对定位就可以了,不添加的话,会根据您的页面的内容去自适应的。

支付宝小程序框架 SJS·esnext
支付宝小程序框架 事件·介绍
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

支付宝小程序开发文档

支付宝小程序 快速示例

支付宝小程序 小程序快速示例

支付宝小程序 框架

支付宝小程序 组件

支付宝小程序组件 基础组件

支付宝小程序组件 无障碍访问

支付宝小程序 扩展组件

支付宝小程序扩展组件 UI组件

支付宝小程序 API

支付宝小程序 开发工具

支付宝小程序 云服务

支付宝小程序 Serverless

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }