微信小程序最常用的布局——Flex布局

最近在学习微信小程序,在设计首页布局的时候,新认识了一种布局方式display:flex

1 .container {
2   display: flex;
3   flex-direction: column;
4   align-items: center;
5   background-color: #b3d4db;
6 }

编译之后的效果很明显,界面的布局也很合理,看起来很清晰。那么究竟这个属性是干嘛用的呢?

  Flex是Flexible Box的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性。设为Flex布局以后,子元素的floatclearvertical-align属性将失效。

它即可以应用于容器中,也可以应用于行内元素。(以上说明结合微信开发者工具说明)2009年,W3C提出了一种新的方案----Flex布局,可以简便、完整、响应式地实现各种页面布局。目前,它已经得到了所有浏览器的支持,这意味着,现在就能很安全地使用这项功能。

 

基本概念

 

采用Flex布局的元素,称为Flex容器(flex container),简称"容器"。它的所有子元素自动成为容器成员,称为Flex项目(flex item),简称"项目"。容器默认存在两根轴:水平的主轴(main axis)和垂直的交叉轴(cross axis)。主轴的开始位置(与边框的交叉点)叫做main start,结束位置叫做main end;交叉轴的开始位置叫做cross start,结束位置叫做cross end。项目默认沿主轴排列。单个项目占据的主轴空间叫做main size,占据的交叉轴空间叫做cross size

 

 

以下6个属性设置在容器上:

 

    • flex-direction  容器内项目的排列方向(默认横向排列)  
    • flex-wrap  容器内项目换行方式
    • flex-flow  以上两个属性的简写方式
    • justify-content  项目在主轴上的对齐方式
    • align-items  项目在交叉轴上如何对齐
    • align-content  定义了多根轴线的对齐方式。如果项目只有一根轴线,该属性不起作用。

 

flex-direction

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

属性可选值的范围为row(默认)沿水平主轴由左向右排列、row-reverse沿水平主轴由右向左排列、column沿垂直主轴右上到下和column-reverse。

 

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

属性可选值的范围为nowrap(默认)不换行、wrap换行(第一行在上方)和wrap-reverse(你懂的~)

 

flex-flow

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

写法属性中,将上述两种方法的值用||连接即可

 

justify-content

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

项目在主轴上的对齐方式(主轴究竟是哪个轴要看属性flex-direction的设置了)

flex-start:在主轴上由左或者上开始排列

flex-end:在主轴上由右或者下开始排列

center:在主轴上居中排列

space-between:在主轴上左右两端或者上下两端开始排列

space-around:每个项目两侧的间隔相等。所以,项目之间的间隔比项目与边框的间隔大一倍。

 

 

align-items

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

这里面直接上图片说明的更清楚一些

align-content

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

以上介绍完了容器中的属性,下面说一下容器中项目的属性:

    • order  项目的排列顺序。数值越小,排列越靠前,默认为0。
    • flex-grow  项目的放大比例,默认为0,即如果存在剩余空间,也不放大。
    • flex-shrink  项目的缩小比例,默认为1,即如果空间不足,该项目将缩小。
    • flex-basis  在分配多余空间之前,项目占据的主轴空间(main size)。浏览器根据这个属性,计算主轴是否有多余空间。它的默认值为auto,即项目的本来大小。
    • flex  是flex-growflex-shrink 和 flex-basis的简写,默认值为0 1 auto。后两个属性可选。
    • align-self  允许单个项目有与其他项目不一样的对齐方式,可覆盖align-items属性。默认值为auto,表示继承父元素的align-items属性,如果没有父元素,则等同于stretch

order

1     .item {
2       order: <integer>;
3     }

flex-grow

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

flex-shrink

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

flex-basis

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

flex

1     .item {
2       flex: none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ]
3     }

align-self

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

 

容器属性和项目属性是可以配合使用的,用法类似于CSS的行内式和嵌入式的道理一样。希望你可以在实际应用中熟练使用。

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

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

相关文章

LeetCode 649. Dota2 参议院(循环队列)

文章目录1. 题目2. 解题1. 题目 Dota2 的世界里有两个阵营&#xff1a;Radiant(天辉)和 Dire(夜魇) Dota2 参议院由来自两派的参议员组成。现在参议院希望对一个 Dota2 游戏里的改变作出决定。他们以一个基于轮为过程的投票进行。在每一轮中&#xff0c;每一位参议员都可以行…

'[linux下tomcat 配置

tomcat目录结构bin ——Tomcat执行脚本目录 conf ——Tomcat配置文件 lib ——Tomcat运行需要的库文件&#xff08;JARS&#xff09; logs ——Tomcat执行时的LOG文件 temp ——Tomcat临时文件存放目录 webapps ——Tomcat的主要Web发布目录&#xff08;存放我们自己的JSP,SER…

微信小程序基础(一)

一.注册小程序账号&#xff0c;下载IDE 1.官网注册https://mp.weixin.qq.com/&#xff0c;并下载IDE。 2.官方文档一向都是最好的学习资料。 注意&#xff1a; &#xff08;1&#xff09;注册账号之后会有一个appid&#xff0c;新建项目的时候需要填上&#xff0c;不然很多…

[Kaggle] Spam/Ham Email Classification 垃圾邮件分类(RNN/GRU/LSTM)

文章目录1. 读入数据2. 文本处理3. 建模4. 训练5. 测试练习地址&#xff1a;https://www.kaggle.com/c/ds100fa19 相关博文 [Kaggle] Spam/Ham Email Classification 垃圾邮件分类&#xff08;spacy&#xff09; [Kaggle] Spam/Ham Email Classification 垃圾邮件分类&#xff…

禁止网页复制

<SCRIPT LANGUAGEjavascript>function click() {alert(禁止你的左键复制&#xff01;) }function click1() {if (event.button2) {alert(禁止右键点击~&#xff01;) }}function CtrlKeyDown(){if (event.ctrlKey) {alert(不当的拷贝将损害您的系统&#xff01;) }}docum…

微信小程序中实现瀑布流布局和无限加载

瀑布流布局是一种比较流行的页面布局方式&#xff0c;最典型的就是Pinterest.com&#xff0c;每个卡片的高度不都一样&#xff0c;形成一种参差不齐的美感。 在HTML5中&#xff0c;我们可以找到很多基于jQuery之类实现的瀑布流布局插件&#xff0c;轻松做出这样的布局形式。在…

LeetCode 1684. 统计一致字符串的数目(哈希)

文章目录1. 题目2. 解题1. 题目 给你一个由不同字符组成的字符串 allowed 和一个字符串数组 words 。 如果一个字符串的每一个字符都在 allowed 中&#xff0c;就称这个字符串是 一致 字符串。 请你返回 words 数组中 一致 字符串的数目。 示例 1&#xff1a; 输入&#xff…

Android下常见的内存泄露 经典

转自&#xff1a;http://www.linuxidc.com/Linux/2011-10/44785.htm 因为Android使用Java作为开发语言&#xff0c;很多人在使用会不注意内存的问题。 于是有时遇到程序运行时不断消耗内存&#xff0c;最终导致OutOfMemery&#xff0c;程序异常退出&#xff0c;这就是内存泄露导…

微信小程序:页面跳转时传递数据到另一个页面

一、功能描述 页面跳转时&#xff0c;同时把当前页面的数据传递给跳转的目标页面&#xff0c;并在跳转后的目标页面进行展示 二、功能实现 1. 代码实现 test1页面 // pages/test1/test1.js Page({/*** 页面的初始数据*/data: {name:Tom,age:12},buttonListener:function(){…

LeetCode 1685. 有序数组中差绝对值之和(前缀和)

文章目录1. 题目2. 解题1. 题目 给你一个 非递减 有序整数数组 nums 。 请你建立并返回一个整数数组 result&#xff0c;它跟 nums 长度相同&#xff0c;且result[i] 等于 nums[i] 与数组中所有其他元素差的绝对值之和。 换句话说&#xff0c; result[i] 等于 sum(|nums[i]-…

对一个 复杂的json结果进行取值的例子

1 JSON结果集 1 [2 {3 "J_LP_OPERATE_MAIN": {4 "ID": "1900036295",5 "FILL_MAN": "周兴福",6 "FILL_DEPT": "运维一班",7 "STATE…

微信小程序正则判断姓名和手机号

一、页面效果 二、json文件 //获取应用实例 const app getApp() Page({/*** 页面的初始数据*/data: {array: [速美, 现代, 淮安],mode: scaleToFill,src: ../../images/1.png,userInfo: {},hasUserInfo: false,canIUse: wx.canIUse(button.open-type.getUserInfo),userName: …

LeetCode 1686. 石子游戏 VI(贪心)

文章目录1. 题目2. 解题283 / 1660&#xff0c;前17%681 / 6572&#xff0c;前10.4%1. 题目 Alice 和 Bob 轮流玩一个游戏&#xff0c;Alice 先手。 一堆石子里总共有 n 个石子&#xff0c;轮到某个玩家时&#xff0c;他可以 移出 一个石子并得到这个石子的价值。 Alice 和 B…

T4生成实体和简单的CRUD操作

主要跟大家交流下T4,我这里针对的是mysql,我本人比较喜欢用mysql,所以语法针对mysql,所以你要准备mysql的DLL了,同理sqlserver差不多,有兴趣可以自己写写,首先网上找了一个T4的帮助类,得到一些数据库属性,命名为 DbHelper.ttinclude <# template debug"false" hos…

微信小程序的不同函数调用的几种方法

一、调取参数 直接调取当前js中的方法, 调取参数that.bindViewTap(); 二、跳转页面 navigateTo: function () { wx.navigateTo({ url: ../page4/page4 }); },全局变量使用方法 a.js var app getApp() Page({ data: { hex1: [], })} //设置全局变量 if (hex1 ! null) { app.…

微信小程序中带参数返回上一页的方法总结(三种)

本篇文章给大家带来的内容是关于微信小程序中带参数返回上一页的方法总结&#xff08;三种&#xff09;&#xff0c;有一定的参考价值&#xff0c;有需要的朋友可以参考一下&#xff0c;希望对你有所帮助。 方法一 把当前页面数据放入本地缓存&#xff08; wx.setStorage&…

LeetCode 1688. 比赛中的配对次数(模拟)

文章目录1. 题目2. 解题1. 题目 给你一个整数 n &#xff0c;表示比赛中的队伍数。比赛遵循一种独特的赛制&#xff1a; 如果当前队伍数是 偶数 &#xff0c;那么每支队伍都会与另一支队伍配对。总共进行 n / 2 场比赛&#xff0c;且产生 n / 2 支队伍进入下一轮。如果当前队…

golang的sync包例子

package mainimport ("fmt""sync" )var wg sync.WaitGroupfunc asyncTestFunc() {for i : 0; i < 100; i {fmt.Println(i)}wg.Done() }func main() {wg.Add(1)go asyncTestFunc()wg.Wait() } 转载于:https://www.cnblogs.com/ziyouchutuwenwu/p/3719523…

微信小程序使用函数的方法

一、使用来自不同页面的函数 函数写在util.js页面 function formatTime(date) {var year date.getFullYear()var month date.getMonth() 1var day date.getDate()var hour date.getHours()var minute date.getMinutes()var second date.getSeconds()return [year, mon…

LeetCode 1689. 十-二进制数的最少数目(脑筋急转弯)

文章目录1. 题目2. 解题1. 题目 如果一个十进制数字不含任何前导零&#xff0c;且每一位上的数字不是 0 就是 1 &#xff0c;那么该数字就是一个 十-二进制数 。 例如&#xff0c;101 和 1100 都是 十-二进制数&#xff0c;而 112 和 3001 不是。 给你一个表示十进制整数的字…