微信小程序 flexbox layout快速实现基本布局的解决方案


Posted in Javascript onMarch 24, 2020

问题描述

flexbox layout ——弹性盒子布局。弹性盒子可以快速的对小程序进行布局。一般传统的小程序布局方法对内容量少的页面而言很方便,但对页面比较复杂的来讲就很繁琐了。所以使用 flexbox layout 对小程序页面内容进行整体封装布局,这样既方便又快捷。那么如何使用弹性盒子快速实现小程序的基本布局呢?

传统的布局方式对布局目标的实现属性赋值非常的分散,严重依赖内容的大小和页面的结构,这样操作起来非常的麻烦。而弹性盒子就比较灵活、统一,可以对整个页面的布局进行总体把控设置。弹性盒子就是将页面的内容整体放进一个容器里面进行整体的有结构的布局设置让页面更加和谐。

解决方案

首先,对 flexbox layout 的使用方法进行简单介绍。

先将所需封装的内容放在一个 view 容器里面,再对该 view 容器定义一个 class 。然后需要在 wxss 里面对 class 进行设置布局。

在 wxss 中首先用 display : flex 将 view 容器变成一个弹性盒子,但是弹性盒子默认的主轴方向是从左往右所以每个元素都是从左往右的放置。根据自己的需要修改主轴的方向。

这里以从上往下的主轴方向,垂直方向上均匀分布,元素在水平方向上居中显示为例。在 wxss 用 flex-direction : column 来实现从上到下的布局。但是会发现段与段之间太紧促了,这个时候就需要让段落均匀分布,用 justify-content : space-around 来实现。(注意:在使用 justify-content 的时候我们需要根据自己设置的布局方向对页面的高度(宽度)进行适配,小程序会根据你所设置的对段落间的空间进行调整。)。最后让元素在水平方向上居中显示,需要用 align-items : center 来实现。

下面是用两个弹性盒子(一个是垂直方向,另一个是水平方向)布局的案例代码:

表 3.1.wxml 代码

<view>
<image src="/pages/img/ 宣传图 2.jpg"></image>
<text> 从我做起 </text>
<text> 不信谣!不传谣! </text>
<text> 相信政府!相信国家! </text>
</view>
<view>
<text> 戴口罩,勤洗手 </text>
<text> 不扎堆,拒聚餐 </text>
<text> 吃熟食,禁野味 </text>
<text> 常通风,勿恐慌 </text>
<text> 早就医,莫轻视 </text> 
</view>

表 3.2.wxss 代码

.container1{
height: 80vh;
display: flex;
flex-direction: column;
justify-content: space-around;
align-items: center;
color: red;
background-color: yellow
}
.container2{
background-color: yellow;
height: 20vh;
width: 70vh;
display: flex;
flex-direction: row;
justify-content: space-around;
align-items: center;
color:blue
}
.view1{
height: 650rpx;
width: 550rpx
}

效果图展示:

微信小程序 flexbox layout快速实现基本布局的解决方案

图 3.1

flexbox layout 的属性总结:

弹性盒子布局具有六大属性:

( 1 ) flex-direction 属性决定主轴的方向

row (默认值):主轴为水平方向,起点在左端。

row-reverse:主轴为水平方向,起点在右端。

column :主轴为垂直方向,起点在上沿。

column-reverse :主轴为垂直方向,起点在下沿

( 2 ) flex-wrap属性决定元素的换行

nowrap (默认):不换行。

wrap :换行,第一行在上方

wrap-reverse:换行,第一行在下方。

( 3 ) flex-flow 属性是 flex-direction 属性和 flex-wrap 属性的简写形式

( 4 ) justify-content 属性定义内容在主轴上的对齐方式。

flex-start(默认值):左对齐。

flex-end:右对齐。

center : 居中。

space-between:两端对齐,项目之间的间隔都相等。

space-around:每个项目两侧的间隔相等。

( 5 ) align-items 属性定义项目在交叉轴上如何对齐。

flex-start:交叉轴的起点对齐。

flex-end:交叉轴的终点对齐。

center :交叉轴的中点对齐。

baseline: 项目的第一行文字的基线对齐。

stretch(默认值):如果项目未设置高度或设为auto ,将占满整个容器的高度。

( 6 ) align-content 属性定义了多根轴线的对齐方式

flex-start:与交叉轴的起点对齐。

flex-end:与交叉轴的终点对齐。

center :与交叉轴的中点对齐。

space-between:与交叉轴两端对齐,轴线之间的间隔平均分布。

space-around:每根轴线两侧的间隔都相等。所以,轴线之间的间隔比轴线与边框的间隔大一倍。

stretch(默认值):轴线占满整个交叉轴。

结语

flexbox layout 弹性盒子布局以上只是介绍了简单的容器属性。由上面的介绍和代码例子可以看出用它来对页面布局非常的方便和快捷,所写的代码也十分精简。掌握弹性盒子的容器属性就可以轻松的玩转小程序的页面布局,高效又简单。

到此这篇关于微信小程序 flexbox layout快速实现基本布局的解决方案的文章就介绍到这了,更多相关小程序flexbox layout布局内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
JavaScript DOM 添加事件
Feb 14 Javascript
js replace正则表达式应用案例讲解
Jan 17 Javascript
使用js实现按钮控制文本框加1减1应用于小时+分钟
Dec 09 Javascript
javascript实现回到顶部特效
May 06 Javascript
vuejs2.0子组件改变父组件的数据实例
May 10 Javascript
AngularJs定时器$interval 和 $timeout详解
May 25 Javascript
js实现图片懒加载效果
Jul 17 Javascript
node实现简单的反向代理服务器
Jul 26 Javascript
EasyUI Tree树组件无限循环的解决方法
Sep 27 Javascript
JavaScript插入排序算法原理与实现方法示例
Aug 06 Javascript
详解Vue中的基本语法和常用指令
Jul 23 Javascript
Vue + iView实现Excel上传功能的完整代码
Jun 22 Vue.js
安装多版本Vue-CLI的实现方法
Mar 24 #Javascript
js实现页面图片消除效果
Mar 24 #Javascript
js实现消灭星星(web简易版)
Mar 24 #Javascript
JavaScript实现移动端带transition动画的轮播效果
Mar 24 #Javascript
javascript实现滚动条效果
Mar 24 #Javascript
Webpack中SplitChunksPlugin 配置参数详解
Mar 24 #Javascript
JS实现点星星消除小游戏
Mar 24 #Javascript
You might like
xml+php动态载入与分页
2006/10/09 PHP
php PDO中文乱码解决办法
2009/07/20 PHP
php接口和抽象类使用示例详解
2014/03/02 PHP
php解析url并得到url中的参数及获取url参数的四种方式
2015/10/26 PHP
WordPress中缩略图的使用以及相关技巧
2015/11/24 PHP
javascript作用域容易记错的两个地方分析
2012/06/22 Javascript
JQuery弹出炫丽对话框的同时让背景变灰色
2014/05/22 Javascript
一个仿糯米弹框效果demo
2014/07/22 Javascript
深入理解JavaScript系列(50):Function模式(下篇)
2015/03/04 Javascript
原生js实现类似弹窗抖动效果
2015/04/02 Javascript
jQuery on()方法绑定动态元素的点击事件实例代码浅析
2016/06/16 Javascript
基于WebUploader的文件上传js插件
2016/08/19 Javascript
详解jQuery的表单验证插件--Validation
2016/12/21 Javascript
详解Javascript几种跨域方式总结
2017/02/27 Javascript
利用Javascript实现一套自定义事件机制
2017/12/14 Javascript
jQuery封装animate.css的实例
2018/01/04 jQuery
ssh批量登录并执行命令的python实现代码
2012/05/25 Python
python比较2个xml内容的方法
2015/05/11 Python
在Python的列表中利用remove()方法删除元素的教程
2015/05/21 Python
shelve  用来持久化任意的Python对象实例代码
2016/10/12 Python
Python读写/追加excel文件Demo分享
2018/05/03 Python
python利用thrift服务读取hbase数据的方法
2018/12/27 Python
浅谈python requests 的put, post 请求参数的问题
2019/01/02 Python
对Python3使运行暂停的方法详解
2019/02/18 Python
jupyter 中文乱码设置编码格式 避免控制台输出的解决
2020/04/20 Python
使用HTML5 Canvas为图片填充颜色和纹理的教程
2016/03/21 HTML / CSS
Saks Fifth Avenue澳洲/亚太地区:萨克斯第五大道精品百货店
2019/06/09 全球购物
园林技术个人的自我评价
2014/01/08 职场文书
普通简短的个人自我评价
2014/02/15 职场文书
南京市纪委监察局整改方案
2014/09/16 职场文书
群众路线党员个人剖析材料
2014/10/08 职场文书
论群众路线学习心得体会
2014/10/31 职场文书
学习走群众路线心得体会
2014/11/05 职场文书
工作年限证明范本
2015/06/15 职场文书
2016年公司“3.12”植树节活动总结
2016/03/16 职场文书
Java elasticsearch安装以及部署教程
2021/06/28 Java/Android