当前位置: 首页 > news >正文

微信小程序CSS Flexbox(弹性盒子)布局模块

容器中使用flexbox

flexbox的模型

当元素表现为 flex 框时,它们沿着两个轴来布局:在这里插入图片描述

名词说明
  • 主轴(main axis)是沿着 flex 元素放置的方向延伸的轴(比如页面上的横向的行、纵向的列)。该轴的开始和结束被称为 main start 和 main end。
  • 交叉轴(cross axis)是垂直于 flex 元素放置方向的轴。该轴的开始和结束被称为 cross start 和 cross end。
  • 设置了 display: flex 的父元素被称之为 flex 容器(flex container)。
  • 在 flex 容器中表现为柔性的盒子的元素被称之为 flex 项(flex item)

实例

<div class="flex-container">
  <div>1</div>
  <div>2</div>
  <div>3</div>
</div>

含有三个项目的flex容器,其实就是一个普通的容器标签,在样式表中通过将他的display属性值设置为flex,就可以作为伸缩容器用了。

.flex-container {
  display: flex;
}

flex容器的属性

flex-direction

定义容器在哪个方向上来排列子项目

可选值含义示例
column垂直方向上排列,从上到下在这里插入图片描述
column-reverse也是垂直方向上,不过是从下到上的在这里插入图片描述
row水平方向上排列,从左到右在这里插入图片描述
row-reverse水平方向上排列,从右到左在这里插入图片描述
flex-wrap

规定是否对flex的子项目进行换行操作,当子项目水平排列的时候,一行的项目过多是否对其进行换行的操作。

可选值含义示例
wrap在必要的时候换行在这里插入图片描述
nowrap不进行换行,此值为默认值在这里插入图片描述
wrap-reverse必要的时候换行,不过要以相反的顺序换行,相当于从下到上换行在这里插入图片描述
flex-flow

这个参数是对flex-wrap和flex-direction的组合参数,通过这一个属性可以设置两个属性的值

.flex-container {
  display: flex;
  flex-flow: row wrap;
}

通过设置flex-flow把flex-direction设置为row(水平布局),flex-wrap设置为wrap(必要时换行)。

justify-content

控制flex子项目在主轴上的位置。

可选值含义示例
center将flex的子项目向主轴上中心位置对齐在这里插入图片描述
flex-start将子项目向主轴开始位置对齐,即main start位置,本例中最左侧在这里插入图片描述
flex-end将子项目向主轴结束位置对齐,即main end位置,本例中最右侧在这里插入图片描述
space-around主轴方向上,在每个子项目的前后都加上空格在这里插入图片描述
space-between主轴方向上在两个子项目之间加上空格(头尾没有空格)在这里插入图片描述
align-items

控制flex子项目在交叉轴上的位置。

可选值含义示例
center子项目向交叉轴中心位置对齐在这里插入图片描述
flex-start子项目向交叉轴起始位置对齐,即cross start位置,本例中最上方在这里插入图片描述
flex-end子项目向交叉轴结束位置对齐,即cross end位置,本例中最下方在这里插入图片描述
stretch交叉轴方向拉伸子项目填充容器,此值为默认值在这里插入图片描述
baseline子项目与基线(容器中心水平线)对齐在这里插入图片描述
align-self

与align-item相同也是定义了交叉轴方向上的对齐方式,可选值也是相同的,但是这个属性用于子项目自身,它会覆盖掉父容器的align-item属性值。下面的例子中设置父容器的align-item=flex-start,单独设置子项目“2”align-self属性为center,效果图如下:

align-content

定义了子项目的填充方式,即flex容器内部子项目从哪个位置开始填充。该属性对单行弹性盒子模型无效。(即:带有 flex-wrap: nowrap)。

可选值含义示例
center所有行朝向容器的中心填充。每行互相紧挨,相对于容器居中对齐。容器的交叉轴起点边和第一行的距离相等于容器的交叉轴终点边和最后一行的距离在这里插入图片描述
flex-start所有行从交叉轴起点开始填充。第一行的交叉轴起点边和容器的交叉轴起点边对齐。接下来的每一行紧跟前一行在这里插入图片描述
flex-end所有行从交叉轴末尾开始填充。最后一行的交叉轴终点和容器的垂直轴终点对齐。同时所有后续行与前一个对齐在这里插入图片描述
space-between所有行在容器中平均分布。相邻两行间距相等。容器的交叉轴起点边和终点边分别与第一行和最后一行的边对齐在这里插入图片描述
stretch拉伸所有行来填满剩余空间,剩余空间平均地分配给每一行,此值为默认值在这里插入图片描述

子项目居中

justify-content(主轴方向) 和 align-items(交叉轴方向) 属性设置为center(居中),就可以实现子项目的居中。在微信小程序中我只设置了justify-content就实现了居中,不知道是什么情况。

.flex-container {
  display: flex;
  height: 300px;
  justify-content: center;
  align-items: center;
}

在这里插入图片描述

相关文章:

  • 语义化版本 2.0.0 -- 如何使用软件版本号
  • 微信小程序css之盒子(box)模型
  • 微信小程序中text标签换行问题
  • 微信小程序无法找到组件的问题 [“usingComponents“][“component1“]:“xxx“未找到
  • git本地仓库新建分支并推送到远端仓库
  • 微信小程序将组件中的文字放置在正中间的方法
  • linux脚本开头的#!/bin/bash有什么作用
  • git如何撤销未提交的更改
  • Qt动态更改界面语言(在运行状态下改变界面语言)
  • .gitignore文件---让git自动忽略指定文件
  • 解决QMYSQL driver not loaded问题
  • 信息安全之对称加密技术
  • 信息安全之非对称加密技术
  • 信息安全之数字信封原理
  • 信息安全之信息摘要技术
  • 【跃迁之路】【519天】程序员高效学习方法论探索系列(实验阶段276-2018.07.09)...
  • iOS仿今日头条、壁纸应用、筛选分类、三方微博、颜色填充等源码
  • js作用域和this的理解
  • MaxCompute访问TableStore(OTS) 数据
  • PhantomJS 安装
  • socket.io+express实现聊天室的思考(三)
  • spring security oauth2 password授权模式
  • Spring核心 Bean的高级装配
  • vue总结
  • webpack项目中使用grunt监听文件变动自动打包编译
  • 从零开始学习部署
  • 机器学习 vs. 深度学习
  • 基于Dubbo+ZooKeeper的分布式服务的实现
  • 力扣(LeetCode)56
  • 微服务入门【系列视频课程】
  • 问题之ssh中Host key verification failed的解决
  • 线上 python http server profile 实践
  • 验证码识别技术——15分钟带你突破各种复杂不定长验证码
  • 一个JAVA程序员成长之路分享
  • MPAndroidChart 教程:Y轴 YAxis
  • ​MPV,汽车产品里一个特殊品类的进化过程
  • ### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLTr
  • #define用法
  • (2.2w字)前端单元测试之Jest详解篇
  • (23)Linux的软硬连接
  • (Python第六天)文件处理
  • (pytorch进阶之路)扩散概率模型
  • (全部习题答案)研究生英语读写教程基础级教师用书PDF|| 研究生英语读写教程提高级教师用书PDF
  • (十一)JAVA springboot ssm b2b2c多用户商城系统源码:服务网关Zuul高级篇
  • (十一)手动添加用户和文件的特殊权限
  • (四)搭建容器云管理平台笔记—安装ETCD(不使用证书)
  • (转)c++ std::pair 与 std::make
  • (转)Unity3DUnity3D在android下调试
  • ****** 二 ******、软设笔记【数据结构】-KMP算法、树、二叉树
  • **CI中自动类加载的用法总结
  • .net core 6 redis操作类
  • .NET 依赖注入和配置系统
  • .NET精简框架的“无法找到资源程序集”异常释疑
  • .net开发时的诡异问题,button的onclick事件无效
  • .net连接oracle数据库