微信小程序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 相关文章推荐
JavaScript 判断浏览器类型及版本
Feb 21 Javascript
Jquery Ajax学习实例7 Ajax所有过程事件分析示例
Mar 23 Javascript
JS实现简单的顶部定时关闭层效果
Jun 15 Javascript
原生js制作简单的数字键盘
Apr 24 Javascript
图解Sublime Text3使用技巧
Dec 21 Javascript
使用JS正则表达式 替换括号,尖括号等
Nov 29 Javascript
React学习笔记之高阶组件应用
Jun 02 Javascript
vue移动端微信授权登录插件封装的实例
Aug 28 Javascript
解决cordova+vue 项目打包成APK应用遇到的问题
May 10 Javascript
layui 根据后台数据动态创建下拉框并同时默认选中的实例
Sep 02 Javascript
微信小程序实现轨迹回放的示例代码
Dec 13 Javascript
小程序实现录音功能
Sep 22 Javascript
详解如何实现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
配置支持SSI
2006/11/25 PHP
建站常用13种PHP开源CMS比较
2009/08/23 PHP
php清空(删除)指定目录下的文件,不删除目录文件夹的实现代码
2014/09/04 PHP
SWFObject 2.1以上版本语法介绍
2010/07/10 Javascript
jquery连缀语法如何实现
2012/11/29 Javascript
jQuery中获取checkbox选中项等操作及注意事项
2013/11/24 Javascript
jQuery 追加元素的方法如append、prepend、before
2014/01/16 Javascript
jquery动态添加删除一行数据示例
2014/06/12 Javascript
Jquery选择器中使用变量实现动态选择例子
2014/07/25 Javascript
JavaScript 开发工具webstrom使用指南
2014/12/09 Javascript
IE下支持文本框和密码框placeholder效果的JQuery插件分享
2015/01/31 Javascript
jquery validate.js表单验证入门实例(附源码)
2015/11/10 Javascript
移动端jQuery修正Web页面滑动时div问题的两则实例
2016/05/30 Javascript
老生常谈 关于JavaScript的类的继承
2016/06/24 Javascript
关于JS变量和作用域详解
2016/07/28 Javascript
Vue.js开发环境搭建
2016/11/10 Javascript
JQuery和PHP结合实现动态进度条上传显示
2016/11/23 Javascript
Bootstrap php制作动态分页标签
2016/12/23 Javascript
最适应的vue.js的form提交涉及多种插件【推荐】
2018/08/27 Javascript
Vue解析剪切板图片并实现发送功能
2020/02/04 Javascript
Python的Urllib库的基本使用教程
2015/04/30 Python
修复 Django migration 时遇到的问题解决
2018/06/14 Python
Python接口测试结果集实现封装比较
2020/05/01 Python
将pycharm配置为matlab或者spyder的用法说明
2020/06/08 Python
Python自动化操作实现图例绘制
2020/07/09 Python
使用PyCharm官方中文语言包汉化PyCharm
2020/11/18 Python
css3 中的新特性加强记忆详解
2016/04/16 HTML / CSS
财产公证书样本
2014/04/04 职场文书
学生安全责任书
2014/04/15 职场文书
会计系毕业生求职信
2014/05/28 职场文书
颂军魂爱军营演讲稿
2014/09/13 职场文书
党的群众路线教育实践活动整改方案
2014/10/28 职场文书
2014社会治安综合治理工作总结
2014/12/04 职场文书
2015年乡镇食品安全工作总结
2015/10/22 职场文书
2016年秋季运动会通讯稿
2015/11/25 职场文书
详解运行Python的神器Jupyter Notebook
2021/06/03 Python