微信小程序Flex布局用法深入浅出分析


Posted in Javascript onApril 25, 2019

本文实例讲述了微信小程序Flex布局用法。分享给大家供大家参考,具体如下:

Flex布局: Flexible Box的缩写,意为“弹性布局”,为盒模型提供巨大的灵活性

使用说明:

1. 任何容器都可以使用flex布局

.box {
  display: flex;
}

2.行内元素可以使用flex布局

.box{
  display: inline-flex;
}

3.webkit内核的浏览器,要加上-webkit前缀

.box {
  display: -webkit-flex; /* Safari */
  display: flex;
}

外层flex容器的属性:

1.flex-direction属性

.box {
  flex-direction: row | row-reverse | column | column-reverse;
}

row(默认值):主轴为水平方向,起点在左端。
row-reverse:主轴为水平方向,起点在右端。
column:主轴为垂直方向,起点在上沿。
column-reverse:主轴为垂直方向,起点在下沿。

2.flex-wrap属性

.box{
  flex-wrap: nowrap | wrap | wrap-reverse;
}

nowrap (默认值) :不换行。
wrap:换行,第一行在上方。
wrap-reverse:换行,第一行在下方。

3. flex-flow属性:是flex-direction属性和flex-wrap属性的简写形式,默认值为row nowrap

.box {
  flex-flow: <flex-direction> || <flex-wrap>;
}

4. justify-content属性:定义item在主轴上的对其方式

.box {
  justify-content: flex-start | flex-end | center | space-between | space-around;
}

flex-start(默认值):左对齐
flex-end:右对齐
center: 居中
space-between:两端对齐,项目之间的间隔都相等。
space-around:每个项目两侧的间隔相等。所以,项目之间的间隔比项目与边框的间隔大一倍。

5. align-items属性:定义项目在交叉轴上如何对其

.box {
  align-items: flex-start | flex-end | center | baseline | stretch;
}

flex-start:交叉轴的起点对齐。
flex-end:交叉轴的终点对齐。
center:交叉轴的中点对齐。
baseline: 项目的第一行文字的基线对齐。
stretch(默认值):如果项目未设置高度或设为auto,将占满整个容器的高度。

6. align-content属性:定义多跟轴线的对其方式,如果只有一根轴线则不起作用

.box {
  align-content: flex-start | flex-end | center | space-between | space-around | stretch;
}

flex-start:与交叉轴的起点对齐。
flex-end:与交叉轴的终点对齐。
center:与交叉轴的中点对齐。
space-between:与交叉轴两端对齐,轴线之间的间隔平均分布。
space-around:每根轴线两侧的间隔都相等。所以,轴线之间的间隔比轴线与边框的间隔大一倍。
stretch(默认值):轴线占满整个交叉轴。

项目item的属性

1. order属性:定义项目的排列顺序,数值越小越靠前,默认值为0,负数在0前面

.item {
  order: <integer>;
}

2. flex-grow属性:定义项目的放大比例,默认为0,即如果存在剩余空间,也不放大

.item {
  flex-grow: <number>; /* default 0 */
}

3. flex-shrink属性:定义项目缩小比例,默认是1,即如果空间不足,该item将缩小

.item {
  flex-shrink: <number>; /* default 1 */
}

4. flex-basis属性:在分配多余空间之前,item占据的主轴空间(main size),默认值auto,即item本身大小

.item {
  flex-basis: <length> | auto; /* default auto */
}

5. 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)。

建议优先使用这个属性,而不是单独写三个分离的属性,因为浏览器会推算相关值。

6. align-self属性:允许单个item与其他item有不一样的对其方式,可覆盖align-items属性

.item {
align-self: auto | flex-start | flex-end | center | baseline | stretch;
}

希望本文所述对大家微信小程序开发有所帮助。

Javascript 相关文章推荐
js计数器代码
Nov 04 Javascript
jquery tools之tabs 选项卡/页签
Jul 25 Javascript
php图像生成函数之间的区别分析
Dec 06 Javascript
jquery固定底网站底部菜单效果
Aug 13 Javascript
jQuery获得内容和属性方法及示例
Dec 02 Javascript
一个html5播放视频的video控件只支持android的默认格式mp4和3gp
May 08 Javascript
node.js中格式化数字增加千位符的几种方法
Jul 03 Javascript
跟我学习javascript的函数调用和构造函数调用
Nov 16 Javascript
js微信扫描二维码登录网站技术原理
Dec 01 Javascript
Node.js中环境变量process.env的一些事详解
Oct 26 Javascript
TypeScript基础入门教程之三重斜线指令详解
Oct 22 Javascript
jQuery实现动态加载瀑布流
Sep 01 jQuery
详解如何实现Element树形控件Tree在懒加载模式下的动态更新
Apr 25 #Javascript
小程序开发踩坑:页面窗口定位(相对于浏览器定位)(推荐)
Apr 25 #Javascript
微信小程序整合使用富文本编辑器的方法详解
Apr 25 #Javascript
微信小程序实现的五星评价功能示例
Apr 25 #Javascript
微信小程序实现单列下拉菜单效果
Apr 25 #Javascript
Vue组件通信的几种实现方法
Apr 25 #Javascript
深入解析vue 源码目录及构建过程分析
Apr 24 #Javascript
You might like
用文本文件制作留言板提示(上)
2006/10/09 PHP
web server使用php生成web页面的三种方法总结
2013/10/28 PHP
Server.HTMLEncode让代码在页面里显示为源代码
2013/12/08 PHP
浅析PHP7新功能及语法变化总结
2016/06/17 PHP
[JS源码]超长文章自动分页(客户端版)
2007/01/09 Javascript
js 浮动层菜单收藏
2009/01/16 Javascript
常用一些Javascript判断函数
2012/08/14 Javascript
Bootstrap每天必学之js插件
2015/11/30 Javascript
基于BootStrap Metronic开发框架经验小结【七】数据的导入、导出及附件的查看处理
2016/05/12 Javascript
JS iFrame加载慢怎么解决
2016/05/13 Javascript
JS产生随机数的几个用法详解
2016/06/22 Javascript
微信小程序 点击控件后选中其它反选实例详解
2017/02/21 Javascript
基于js中this和event 的区别(详解)
2017/10/24 Javascript
Vue实现购物车场景下的应用
2017/11/27 Javascript
weebox弹出窗口不居中显示的解决方法
2017/11/27 Javascript
记一次webapck4 配置文件无效的解决历程
2018/09/19 Javascript
js简单遍历获取对象中的属性值的方法示例
2019/06/19 Javascript
原生javascript单例模式的应用实例分析
2020/02/23 Javascript
《javascript设计模式》学习笔记七:Javascript面向对象程序设计组合模式详解
2020/04/08 Javascript
深度定制Python的Flask框架开发环境的一些技巧总结
2016/07/12 Python
通过5个知识点轻松搞定Python的作用域
2016/09/09 Python
python机器学习之神经网络(三)
2017/12/20 Python
浅谈Python中range和xrange的区别
2017/12/20 Python
利用Opencv中Houghline方法实现直线检测
2018/02/11 Python
Python使用pickle模块实现序列化功能示例
2018/07/13 Python
树莓派+摄像头实现对移动物体的检测
2019/06/22 Python
Python人工智能之路 之PyAudio 实现录音 自动化交互实现问答
2019/08/13 Python
基于Python实现体育彩票选号器功能代码实例
2020/09/16 Python
如何利用input事件来监听移动端的输入
2016/04/15 HTML / CSS
德国富尔达运动鞋店:43einhalb
2020/12/25 全球购物
程序员机试试题汇总
2012/03/07 面试题
中学老师的自我评价
2013/11/07 职场文书
预备党员2014年第四季度思想汇报范文
2014/10/25 职场文书
2014年教师个人工作总结
2014/11/10 职场文书
新郎新娘答谢词
2015/01/04 职场文书
java固定大小队列的几种实现方式详解
2021/07/15 Java/Android