当前位置: 首页 > news >正文

uni-app中理解,区分,使用rpx单位和px单位及样式字体的导入

uni-app中的rpx

Tips:

  • uni-app支持的通用css单位包括px,rpx
  • px即屏幕像素
  • rpx 即响应式 px,是一种根据屏幕宽度自适应的动态单位。
  • rpx 以 750 宽的屏幕为基准,750rpx 恰好为屏幕宽度 (即 375rpx) 为屏幕一半的宽度);当屏幕变宽时,rpx 实际显示效果也会等比例放大

rpx和px的区分和转换:

  • 开发者可以通过设计稿基准宽度计算页面元素 rpx 值,设计稿 1px 与框架样式 1rpx 转换公式如下:
设计稿 1px / 设计稿基准宽度 = 框架样式 1rpx / 750rpx

换言之,页面元素宽度在 uni-app 中的宽度计算公式:

750 * 元素在设计稿中的宽度 / 设计稿基准宽度

举例说明:

 - 若设计稿宽度为 750px,元素 A 在设计稿上的宽度为 100px,那么元素 A 在 uni-app 里面的宽度应该设为:750 *
    100 / 750,结果为:100rpx。
 - 若设计稿宽度为 640px,元素 A 在设计稿上的宽度为 100px,那么元素 A 在 uni-app 里面的宽度应该设为:750 *
    100 / 640,结果为:117rpx。
 - 若设计稿宽度为 375px,元素 B 在设计稿上的宽度为 200px,那么元素 B 在 uni-app 里面的宽度应该设为:750 *
    200 / 375,结果为:400rpx。
  • 注意 rpx 是和宽度相关的单位,屏幕越宽,该值实际像素越大。如不想根据屏幕宽度缩放,则应该使用 px 单位。
  • 如果开发者在字体或高度中也使用了 rpx ,那么需注意这样的写法意味着随着屏幕变宽,字体会变大、高度会变大。如果你需要固定高度,则应该使用px
  • rpx不支持动态横竖屏切换计算,使用rpx建议锁定屏幕方向
  • 设计师可以用 iPhone6 作为视觉稿的标准

导入css样式:

  • 使用 @import 语句导入外联样式表
    @import url("./test.css");
  • 支持基本的常用选择器 class,id,element 等
  • 不能使用*选择器
  • page 相当于 body 节点
  • 定义在 App.vue 中的样式为全局样式;定义在 pages 目录下的为局部样式,同时会覆盖样式相同的全局样式
  • 在使用字体图标时:
    1.当字体文件小于 40kb 时,会自动转换为 base64 格式
    2.当字体文件大于等于 40lb 时, 需要开发者自行转换,否则将不生效
    3.字体文件的引用路径推荐使用以~@开头的绝对路径,如下:

注意:字体文件位于 static/fonts 下的 iconfont.css

@font-face {
	font-family: test-icon;
	src: url('~@/static/iconfont.ttf');
}

使用scss编译工具

  1. 安装scss插件
  2. 使用scss编译工具
    <style lang="scss">
  3. 在uni.scss中定义全局样式:
  • uni.scss是uni-app内置的常用样式变量
  • uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
  • 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
  • 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
  • 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件

相关文章:

  • Selenium2+python自动化27-查看selenium API
  • 了解uni-app的生命周期(应用,页面生命周期)执行顺序
  • linux之程序包安装
  • Java开发程序,使用编辑器编写创建Java项目、类
  • uni-app中下拉刷新及上拉刷新的使用
  • 搭建本地api接口
  • 2016总结
  • vue,uni-app组件间的通讯(父子,兄弟组件间传值)
  • python学习笔记10(用户交互程序)
  • uni-app开发微信小程序封装异步请求
  • Python语法速览与机器学习开发环境搭建
  • uni-app在小程序,h5端,安卓端的打包发布
  • HashSet和HashMap的区别
  • Vue中的使用axios封装的全局拦截器
  • [Swift] Enum 好用, Enum 可以更易用
  • (ckeditor+ckfinder用法)Jquery,js获取ckeditor值
  • 【跃迁之路】【519天】程序员高效学习方法论探索系列(实验阶段276-2018.07.09)...
  • ECMAScript入门(七)--Module语法
  • el-input获取焦点 input输入框为空时高亮 el-input值非法时
  • Intervention/image 图片处理扩展包的安装和使用
  • javascript 总结(常用工具类的封装)
  • JavaScript对象详解
  • JavaScript工作原理(五):深入了解WebSockets,HTTP/2和SSE,以及如何选择
  • js继承的实现方法
  • JS学习笔记——闭包
  • linux学习笔记
  • PAT A1092
  • Sequelize 中文文档 v4 - Getting started - 入门
  • unity如何实现一个固定宽度的orthagraphic相机
  • vuex 学习笔记 01
  • vue中实现单选
  • 观察者模式实现非直接耦合
  • 如何解决微信端直接跳WAP端
  • 我的业余项目总结
  • 新版博客前端前瞻
  • 在Docker Swarm上部署Apache Storm:第1部分
  • scrapy中间件源码分析及常用中间件大全
  • 阿里云ACE认证之理解CDN技术
  • ​ 全球云科技基础设施:亚马逊云科技的海外服务器网络如何演进
  • (6)STL算法之转换
  • (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切
  • (C语言)编写程序将一个4×4的数组进行顺时针旋转90度后输出。
  • (附源码)小程序儿童艺术培训机构教育管理小程序 毕业设计 201740
  • (七)Knockout 创建自定义绑定
  • .net程序集学习心得
  • .net经典笔试题
  • .NET开发不可不知、不可不用的辅助类(三)(报表导出---终结版)
  • .NET应用架构设计:原则、模式与实践 目录预览
  • [28期] lamp兄弟连28期学员手册,请大家务必看一下
  • [Android]RecyclerView添加HeaderView出现宽度问题
  • [AutoSar]BSW_OS 02 Autosar OS_STACK
  • [Big Data - Kafka] kafka学习笔记:知识点整理
  • [boost]使用boost::function和boost::bind产生的down机一例
  • [BZOJ4566][HAOI2016]找相同字符(SAM)
  • [C#]winform利用seetaface6实现C#人脸检测活体检测口罩检测年龄预测性别判断眼睛状态检测