uni-app快速入门(六)--rpx尺寸单位与Flex布局

一、uni-app尺寸单位

       uni-app支持的通用尺寸单位包括px、rpx。为支持跨平台,在搭建空驾驶建议使用Flex布局。px指屏幕像素,rpx是响应式像素,是根据屏幕宽度自适应的动态单位。假如屏幕宽度为750像素,750rpx正好为屏幕宽度。uni-app规定基准屏幕宽度为750rpx。

        设计师设计的图一般提供一个分辨率的图片,如果严格按照设计图的px进行开发,在不同宽度的手机上,界面容易变形,主要是宽度变形,因为有滚动条,在高度上一般不容易出现问题。uni-app在App端、H5端、小程序都支持rpx。页面元素在uni-app的计算公式:

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

     假如设计稿宽度为750px,元素在设计稿宽度为100px,则元素在uni-app的宽度为750x100/750=100rpx;

     假如设计稿宽度为640px,元素在设计稿的宽度为100px,则元素在uni-app的宽度为750x100/640,约117rpx。

     当然既然知道了uni-app的基础屏幕宽度,设计稿最好直接设计成750px,这样就不用换算了。

二、Flex布局

       为支持跨平台,uni-app建议使用Flex布局(Flexible Box,弹性布局)。

       传统布局基于盒状模型,依赖display属性、position属性和float属性,如果使用Flex布局则不建议使用float属性。

      采用Flex布局的元素为Flex容易,里面的子元素为Flex项目(Flex item)。容器指定flex布局的语法:

      .box{display:flex;}

      容器内元素的flex语法:.box{display:inline-flex;}

      容器默认存在两个轴,横轴(水平主轴main axis),纵轴(垂直交叉轴 cross axis)。横轴宽度为main size,纵轴高度为cross size。横轴开始位置结束位置分别称main start、main end,纵轴开始结束位置成文cross start ,cross end,这样便于理解样式里的属性含义。

       Flex布局有6个容器属性:flex-direction 、flex-wrap、flex-flow、justify-content、align-items、align-content。

    容器里的元素有6个属性:order、flex-grow、fle-shrink、flex-basis、flex、align-self。

 【容器属性】

  1、flex-direction:决定主轴方向(项目排列方向)

        .box{

            display:flex;

            flex-direction: row;//默认值,主轴水平方向,起点为左侧;

            //flex-direction: row-reverse;//主轴水平方向,起点为右侧;

            //flex-direction: column;//主轴为垂直方向,起点为顶部;

            //flex-direction:column-reverse;//主轴为垂直方向,起点为底部;

      }

  2、flex-wrap属性:默认情况下,元素排在一条线上,又称轴线上。如果一条线无法排列所有项目,可以换行到下一条线上,代码示例:

       .box{

           display:flex;

           flex-wrap:wrap;//如果没这行,就是默认的nowrap不换行;wrap为换行,第一行在上方;

           //flex-wrap: wrap-reverse;//换行,第一行在下方;

       }

3、flex-flow:是上面flex-direction和flex-wrap加起来的简写形式,默认为row nowrap:

    .box{

        direction: flex;

        flex-flow: row nowrap;

    }

4、justify-content属性:定义项目在主轴上的对齐方式:

     .box{

         display: flex;

         justify-content: flex-start;//flex-start为默认的,左对齐;flex-end为右对齐;center为居中;

        // space-between:两端对齐,元素之间的间隔都相等;

       // space-around: 每个元素两侧的间隔相等。因此元素之间的间隔比元素与边框的间隔大一倍。

5、align-items:定义项目在交叉轴(纵轴)的对齐方式

       .box{

           display:flex;

           align-items: flex-start;//flex-start:纵轴起点对齐、fllex-end纵轴终点对齐、content:纵轴中点对齐。baseline:元素第一行文字的基线对齐;stretch(默认值):如果元素未设置高度或设置为auto,则将占满整个容器高度。

        }

}

6、align-content:定义多条轴线对齐方式,如果元素只有一条轴线,则此属性不起作用。

    .box{

        display:flex;

       align-content: flex-start;//与交叉轴起点对齐。flex-end:与交叉轴终点对齐。center:与交叉轴中点对齐。space-between:与交叉轴两端对齐,轴线之间间隔相等;space-around:每条轴线两侧的间隔相等。因为,轴线之间的间隔比轴线与边框的间隔大一倍。stretch(默认):轴线占满整个交叉轴。

    }

【元素属性】

1、order属性:定义元素的排列顺序,order越小越靠前

.item{

    order: 1;

}

2、flex-grow:定义元素的放大比例,默认为0,即使有剩余空间,也不放大:

   .item{ flex-grow: 0;}

    如果都是1,则等分空间;如果其中一个是2,其他为1,则这个2的元素比其他元素占用空间大倍。

3、flex-shrink:定义元素的缩小比例,默认为1,即如果空间不足,则该元素将缩小。

        .item{ flex-shrink: 1;} 

        如果所有元素flex-shrink都是1,则等比例缩小;如果设置为0的则不缩小。负值对该属性无效。

4、flex-basis:定义在分配多余空间之前该元素占的空间。浏览器根据该属性计算主轴是否有多余空间,默认为auto,即元素本来大小。

         .item{ flex-basis: auto;} //flex-basis可设置为与width或height属性一样的值,则元素将占据固定空间值;

5、flex:是flex-grow、flex-shrink、flex-basis的简写,就是说三周属性可设置到一起,默认值是0 1 auto 其中后两个属性为可选项:

.item{flex : 0 1 auto}

6、align-self:允许单个元素与其他元素不一样的对齐方式,可覆盖align-items属性,默认为auto,表示集成父元素的align-items属性,如果没有父元素,则等同于stretch:

.item{align-self:auto;}

该属性可以取6个值,除了auto外,其他都与align-items属性值完全一致。

        

       

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

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

相关文章

深入探讨 Puppeteer 如何使用 X 和 Y 坐标实现鼠标移动

背景介绍 现代爬虫技术中,模拟人类行为已成为绕过反爬虫系统的关键策略之一。无论是模拟用户点击、滚动,还是鼠标的轨迹移动,都可以为爬虫脚本带来更高的“伪装性”。在众多的自动化工具中,Puppeteer作为一个无头浏览器控制库&am…

【软考】系统架构设计师-计算机系统基础(4):计算机网络

计算机网络功能:数据通信、资源共享、管理集中化、分布式处理、负载均衡 5G高峰速率:10Gbit/s 广域网(因特网)/城域网/局域网(以太网) 总线型:利用率低,易冲突,干扰大…

【HOT100第五天】搜索二维矩阵 II,相交链表,反转链表,回文链表

240.搜索二维矩阵 II 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性: 每行的元素从左到右升序排列。每列的元素从上到下升序排列。 先动手写写最简单方法,二重循环。 class Solution { public:bool searchMa…

从技术到产品:第三方美颜API助力实时直播平台的开发详解

众所周知,开发一套完整的美颜功能不仅耗时耗力,还需要大量的算法调优与硬件优化。为此,第三方美颜API成为越来越多开发者的优先选择。本篇文章,小编将从技术到产品,深入探讨第三方美颜API如何助力直播平台的快速开发。…

《深入理解 Spring MVC 工作流程》

一、Spring MVC 架构概述 Spring MVC 是一个基于 Java 的轻量级 Web 应用框架,它遵循了经典的 MVC(Model-View-Controller)设计模式,将请求、响应和业务逻辑分离,从而构建出灵活可维护的 Web 应用程序。 在 Spring MV…

大数据新视界 -- 大数据大厂之 Impala 性能优化:融合人工智能预测的资源预分配秘籍(上)(29 / 30)

💖💖💖亲爱的朋友们,热烈欢迎你们来到 青云交的博客!能与你们在此邂逅,我满心欢喜,深感无比荣幸。在这个瞬息万变的时代,我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…

【MySQL-3】表的约束

目录 1. 整体学习的思维导图 2. 非空约束 3. default约束 4. No Null和default约束 5. 列描述 comment 6. Zerofill 7. 主键 primary key 复合主键 8. 自增长 auto_increment 9. 唯一键 10. 外键 11. 实现综合案例 1. 整体学习的思维导图 2. 非空约束 正如该标题一…

【Linux】Namespace

一、概念 Linux Namespace 是 Linux 内核提供的一种特性,用于对系统资源进行隔离。通过 Namespace,不同的进程组可以拥有独立的系统资源视图,即使它们在同一台物理机器上运行。这种隔离机制使得容器技术成为可能,因为它允许在单个…

在MATLAB中实现自适应滤波算法

自适应滤波算法是一种根据信号特性自动调整滤波参数的数字信号处理方法,其可以有效处理噪声干扰和信号畸变问题。在许多实时数据处理系统中,自适应滤波算法得到了广泛应用。在MATLAB中,可以使用多种方法实现自适应滤波算法。本文将介绍自适应…

Python学习------第十天

数据容器-----元组 定义格式,特点,相关操作 元组一旦定义,就无法修改 元组内只有一个数据,后面必须加逗号 """ #元组 (1,"hello",True) #定义元组 t1 (1,"hello") t2 () t3 tuple() prin…

软件测试—— Selenium 常用函数(一)

前一篇文章:软件测试 —— 自动化基础-CSDN博客 目录 前言 一、窗口 1.屏幕截图 2.切换窗口 3.窗口设置大小 4.关闭窗口 二、等待 1.等待意义 2.强制等待 3.隐式等待 4.显式等待 总结 前言 在前一篇文章中,我们介绍了自动化的一些基础知识&a…

Rust 力扣 - 746. 使用最小花费爬楼梯

文章目录 题目描述题解思路题解代码题目链接 题目描述 题解思路 我们使用a,b分别记录n - 2层向上爬的最小花费,n - 1层向上爬的最小花费 到达楼梯顶第N层,只能从N - 1层或者N - 2层向上爬 所以爬到第N层的最小花费 第N - 1层向上爬和第N - …

VRT: 关于视频修复的模型

VRT: 关于视频修复的模型 1. 视频修复的背景与重要性背景介绍:重要性: 2. VRT的重要性和研究背景VRT的背景:VRT的重要性: 3. 视频修复概述3.1 定义与目标3.2 与单图像修复的区别3.3 对时间信息利用的需求 4. VRT模型详解4.1 整体框…

关于C++地址交换的实现

关于地址的交换实现&#xff0c;我们要使用指针引用的方式进行&#xff0c;例如&#xff1a; #include <iostream>// 定义函数交换两个整型指针的地址 void swapIntPtrAddresses(int* &ptr1, int* &ptr2) {int *temp ptr1;ptr1 ptr2;ptr2 temp; }int main() …

HarmonyOS ArkUI(基于ArkTS) 常用组件

一 Button 按钮 Button是按钮组件&#xff0c;通常用于响应用户的点击操作,可以加子组件 Button(我是button)Button(){Text(我是button)}type 按钮类型 Button有三种可选类型&#xff0c;分别为胶囊类型&#xff08;Capsule&#xff09;、圆形按钮&#xff08;Circle&#xf…

SpringBoot学习笔记(一)

一、Spring Boot概述 &#xff08;一&#xff09;微服务概述 1、微服务 微服务&#xff08;英语&#xff1a;Microservices&#xff09;是一种软件架构风格&#xff0c;它是以专注于单一责任与功能的小型功能区块 (Small Building Blocks) 为基础&#xff0c;利用模块化的方式…

C++初阶(十三)--STL--vector的使用

目录 ​编辑 一、vector的基本介绍 二、vector的使用 1.构造函数的介绍 2.容量操作 size和capacity reserve和resize empty 3.vector的遍历 operator[ ](size_t n) 迭代器使用 begin和end rbegin和rend 4.vector的增删查改 push_back和pop_back insert和erase fi…

用Python爬虫“偷窥”1688商品详情:一场数据的奇妙冒险

引言&#xff1a;数据的宝藏 在这个信息爆炸的时代&#xff0c;数据就像是一座座等待挖掘的宝藏。而对于我们这些电商界的探险家来说&#xff0c;1688上的商品详情就是那些闪闪发光的金子。今天&#xff0c;我们将化身为数据的海盗&#xff0c;用Python这把锋利的剑&#xff0…

matlab的函数名和函数文件名的关系(编程注意事项)

在MATLAB中&#xff0c;函数名和函数文件名之间有着重要的关系。以下是它们之间的关系以及在编程时需要注意的事项 文章目录 函数名与函数文件名的关系编程时的注意事项结论 函数名与函数文件名的关系 一致性要求&#xff1a; 在MATLAB中&#xff0c;函数文件的文件名必须与函数…

【Redis】持久化机制RDB与AOF

一、RDB RDB模式是就是将内存中的数据存储到磁盘中&#xff0c;等到连接断开的时候会进行持久化操作。但是如果服务器宕机&#xff0c;会导致这个持久化机制不会执行&#xff0c;但是内存中的文件会直接丢失。所以可以设置一个触发机制&#xff0c;save 60 1000 就是代表60秒 执…