微信小程序基础概念速览
文章目录
1.小程序特点概述
a)没有 DOM(文件模块)
b)组件化开发: 具备特定功能效果的代码集合
c)体积小,单个压缩包体积不能大于 2M,否则无法上线
d)小程序的四个重要的文件
2.普通的静态页面分为四个部分
a) .js
b) .wxml —> view 结构-- > html
c) .wxss —> view 样式-- > css
d) . json ----> view 数据-- > json 文件
3.小程序适配方案: rpx (responsive pixel 响应式像素单位)
a) 小程序适配单位: rpx
b) 规定任何屏幕下宽度为 750rpx
c) 小程序会根据屏幕的宽度不同自动计算rpx 值的大小
d) Iphone6 下: 1rpx = 1 物理像素 = 0.5px
4.弹性盒模型:在没有指定具体宽高的情况下由内容撑开的布局
1)Flex 是 Flexible Box 的缩写,意为”弹性布局”,用来为盒状模型提供最大的灵活性。
-
任何一个容器都可以指定为 Flex 布局。
-
display: ‘flex’
flex属性:
flex-direction:
①row(默认值):主轴为水平方向,起点在左端。
②row-reverse:主轴为水平方向,起点在右端。
③column:主轴为垂直方向,起点在上沿。
④column-reverse:主轴为垂直方向,起点在下沿。
flex-wrap 容器内元素的换行(默认不换行)
①flex-wrap: nowrap;(默认)
元素不换行,比如:一个div宽度100%,设置此属性,2个view宽度就自动变成各50%;
②flex-wrap: wrap;
元素换行,比如:一个div宽度100%,设置此属性,第二个view就在第二行了
以下6个属性设置在项目上。
①order
order属性定义项目的排列顺序。数值越小,排列越靠前,默认为0。
.item {
order: <integer>;
}
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MfHgZMEg-1617720770285)(E:\写作\markdown\微信小程序资料\001.png)]
②flex-grow
flex-grow属性定义项目的放大比例,默认为0,即如果存在剩余空间,也不放大。
.item {
flex-grow: <number>; /* default 0 */
}
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-K38ufyhu-1617720770294)(E:\写作\markdown\微信小程序资料\002.png)]
如果所有项目的flex-grow属性都为1,则它们将等分剩余空间(如果有的话)。如果一个项目的flex-grow属性为2,其他项目都为1,则前者占据的剩余空间将比其他项多一倍。
③flex-shrink
flex-shrink属性定义了项目的缩小比例,默认为1,即如果空间不足,该项目将缩小。
.item {
flex-shrink: <number>; /* default 1 */
}
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-d7y1e70Y-1617720770296)(E:\写作\markdown\微信小程序资料\003.jpg)]
如果所有项目的flex-shrink属性都为1,当空间不足时,都将等比例缩小。如果一个项目的flex-shrink属性为0,其他项目都为1,则空间不足时,前者不缩小。
负值对该属性无效。
④flex-basis
flex-basis属性定义了在分配多余空间之前,项目占据的主轴空间(main size)。浏览器根据这个属性,计算主轴是否有多余空间。它的默认值为auto,即项目的本来大小。
.item {
flex-basis: <length> | auto; /* default auto */
}
它可以设为跟width或height属性一样的值(比如350px),则项目将占据固定空间。
⑤flex
flex属性是flex-grow, flex-shrink 和 flex-basis的简写,默认值为0 1 auto。后两个属性可选。
.item {
flex: none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ]
}
该属性有两个快捷值:auto (1 1 auto) 和 none (0 0 auto)。
建议优先使用这个属性,而不是单独写三个分离的属性,因为浏览器会推算相关值。
⑥align-self
align-self属性允许单个项目有与其他项目不一样的对齐方式,可覆盖align-items属性。默认值为auto,表示继承父元素的align-items属性,如果没有父元素,则等同于stretch。
.item {
align-self: auto | flex-start | flex-end | center | baseline | stretch;
}
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HCaZ1q7L-1617720770306)(E:\写作\markdown\微信小程序资料\004.png)]
该属性可能取6个值,除了auto,其他都与align-items属性完全一致。
5.其他相关知识
(1)物理像素
-
屏幕的分辨率
-
设备能控制显示的最小单元,可以把物理像素看成是对应的像素点
(2)设备独立像素 & css 像素
设备独立像素(也叫密度无关像素),可以认为是计算机坐标系统中的一个点,这个点代表一个可以由程序使用并控制的虚拟像素(比如:CSS 像素,只是在 android 机中 CSS 像素就不叫”CSS 像素”了而是叫”设备独立像素”),然后由相关系统转换为物理像素。
(3)dpr 比 & DPI & PPI
-
dpr: 设备像素比,物理像素/设备独立像素 = dpr, 一般以 Iphon6 的 dpr 为准 dpr = 2
-
PPI: 一英寸显示屏上的像素点个数
-
DPI:最早指的是打印机在单位面积上打印的墨点数,墨点越多越清晰