支持的单位
经测试,uni-app支持以下CSS单位:
- px
 - upx
 - rpx
 - rem
 - em
 - vw、vh
 - %
 
rpx
uni-app样式采用rpx为单位,无论什么机型的手机,将屏幕宽度切分为 750 份(即屏幕宽度锁定为750rpx,iPhone6屏幕宽度375的两倍)。
计算公式为:
页面元素宽度在 uni-app 中的宽度计算公式 = 750 * 元素在设计稿中的宽度 / 设计稿基准宽度
比如:
- 若设计稿宽度为 640px,元素 A 在设计稿上的宽度为 100px,那么元素 A 在 uni-app 里面的宽度应该设为:750 * 100 / 640,结果为:117rpx。
 - 若设计稿宽度为 375px,元素 B 在设计稿上的宽度为 200px,那么元素 B 在 uni-app 里面的宽度应该设为:750 * 200 / 375,结果为:400rpx。
 
rpx与px转换
function rpx2px(num) {return (num * uni.getSystemInfoSync().windowWidth) / 750}// 将物理像素转化为设备像素function px2rpx(num) {return (num * 750) / uni.getSystemInfoSync().windowWidth}
参考:
upx与px转换
:::warning 此API已过时,建议改为rpx :::
使用 uni.upx2px(Number) 将upx转换为px
注意:动态绑定的 style 不支持直接使用 upx。
<!-- - 静态upx赋值生效 --><view class="test" style="width:200upx"></view><!-- - 动态绑定不生效 --><view class="test" :style="{width:winWidth + 'upx;'}"></view>
需要先换算为px再进行赋值:
<template><view><view :style="{width: halfWidth}">半屏宽度</view></view></template><script>export default {computed: {halfWidth() {return uni.upx2px(750 / 2) + 'px';}}}</script>
样式导入
可以直接通过 @import 导入样式。
<style>@import "../../common/uni.css";.uni-card {box-shadow: none;}</style>
选择器
uni-app 仅支持有限的选择器:
.class#idelementelement,element::after::before
固定值
uni-app 中以下组件的高度是固定的,不可修改:
- 导航栏高度固定为 44px
 - tabBar 高度固定为 56px
 
自定义组件命名限制
自定义组件不能使用以下名称作为组件名:
a、canvas、cell、content、countdown、datepicker、div、element、embed、header、image、img、indicator、input、link、list、loading-indicator、loading、marquee、meta、refresh、richtext、script、scrollable、scroller、select、slider-neighbor、slider、slot、span、spinner、style、svg、switch、tabbar、tabheader、template、text、textarea、timepicker、trisition-group、trisition、video、view、web
