微信小程序开发布局——Flex

2023-11-07

微信小程序开发布局——Flex

问题背景

微信小程序页面布局方式采用的是 Flex 布局,本文将介绍微信开发过程Flex布局的相关知识。

问题分析

(1)任何一个容器都可以指定为Flex布局。

.box{
  display: flex;}

行内元素也可以使用Flex布局。

.box{
  display: inline-flex;}

(2)Flex布局的特点:

任意方向的伸缩,向左,向右,向下,向上
在样式层可以调换和重排顺序
主轴和侧轴方便配置
子元素的空间拉伸和填充
沿着容器对齐

(3)基本概念

采用Flex布局的元素,称为Flex容器(flex container),简称"容器"。它的所有子元素自动成为容器成员,称为Flex项目(flex item),简称"项目"。
在这里插入图片描述

容器默认存在两根轴:水平的主轴(main axis)和垂直的交叉轴(cross axis)。主轴的开始位置(与边框的交叉点)叫做main start,结束位置叫做main end;交叉轴的开始位置叫做cross start,结束位置叫做cross end。
项目默认沿主轴排列。单个项目占据的主轴空间叫做main size,占据的交叉轴空间叫做cross size。

(4)Flex容器的属性

Flex容器有六个可以设置的属性,分别是:
flex-direction属性决定主轴的方向(即项目的排列方向)。

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

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

flex-wrap属性:定义了主轴方向排列的item是否换行

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

它可能取三个值:
nowrap(默认):不换行
wrap:换行,第一行在上方
wrap-reverse:换行,第一行在下方

flex-flow属性是flex-direction属性和flex-wrap属性的简写形式,默认值为row nowrap。
justify-content属性定义了项目在主轴上的对齐方式。

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

它可能取5个值,具体对齐方式与轴的方向有关。下面假设主轴为从左到右。
flex-start(默认值):左对齐
flex-end:右对齐
center: 居中
space-between:两端对齐,项目之间的间隔都相等。
space-around:每个项目两侧的间隔相等。所以,项目之间的间隔比项目与边框的间隔大一倍。

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

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

它可能取5个值。具体的对齐方式与交叉轴的方向有关,下面假设交叉轴从上到下。
flex-start:交叉轴的起点对齐。
flex-end:交叉轴的终点对齐。
center:交叉轴的中点对齐。
baseline: 项目的第一行文字的基线对齐。
stretch(默认值):如果项目未设置高度或设为auto,将占满整个容器的高度。

align-content属性定义了多根轴线的对齐方式。如果项目只有一根轴线,该属性不起作用。

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

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

问题总结

本文初步介绍了Flex布局的相关知识,有兴趣的同学可以进一步深入研究。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

微信小程序开发布局——Flex 的相关文章

  • stripe checkout css内容策略错误

    我正在尝试创建一种形式条纹结账 https stripe com docs checkout在我的 Ionic 应用程序中 我创建了一个指令 将表单植入到我的内容视图中 但是当我运行它时 CSS 因违反内容策略而失败 checkout js
  • 单击按钮重复动画

    我想每次单击按钮时都重复动画 我尝试做某事像这样 https jsfiddle net 91raod7e const dist document querySelector dist document querySelector butto
  • Li向左浮动,长度动态:最后一行无边框底部

    情况如下 https jsfiddle net rpepf9xs https jsfiddle net rpepf9xs 我想用选择器 nth last child 删除边框底部 但是 如果列表中只有8个 li 则会出现如下错误 ul di
  • @Font-face 不适用于 IOS

    我正在开发一个 WordPress 网站 并且在每个页面上都有一个 H1 标签作为该页面的标题 我正在使用 font face 的特殊字体 它在每个浏览器的 Windows 上都运行良好 但是当我切换到 Mac 时 它不会显示 h1 标签
  • 您能否确定 CSS 文件的范围,使其仅适用于给定元素的后代?

    给定一个 css 文件 有没有办法限制整个文件的范围 使其仅适用于给定元素内的元素 例如给定 div span class some element span div 有没有一种方法可以将整个 css 文件的范围应用于 容器 中的所有元素
  • 使用本机 JavaScript 获取过渡中的 CSS 值

    这个问题之前被问过 但答案使用了 jQuery here https stackoverflow com q 8920934 3186555 因此 我将调整问题以专门询问native解决方案 to 最小化依赖关系 假设您有一个 div 然后
  • 将 Div 放置在另一个 DIV 下方

    我有两个 DIV 元素 其中之一具有绝对位置 主 DIV 的左下角 第二个 DIV 是隐藏的 只有单击链接才能显示 我需要第二个出现在第一个下方 但由于第一个 div 的位置是绝对的 第二个 div 出现在第一个 div 之上 HTML 代
  • 每 2 行后使 html 表格的边框变厚

    我创建了一个包含一些内容的表 其中有 12 行和 2 列 我想显示边框 但每 4 行之后 我想将水平边框设置为比正常情况更粗 怎么做 请在这里帮忙 试试这个选择器 table tr nth of type 4n td border bott
  • 删除特定数据表上的所有边框

    我需要使用 PrimeFaces 隐藏一个数据表的所有边框 而不是全部 我尝试了很多事情 但没有人奏效 有谁知道该怎么做 我已将以下样式 单独 应用于ui datatable class border hidden important bo
  • 将鼠标悬停在原点时会触发translateY()

    当您将光标移动到按钮底部时 是否可以无限期地不触发动画 它看起来是这样的 gif https i stack imgur com QwdHW gif and codepen https codepen io jaeyson pen GwwJ
  • 如何在Yii框架中向Form添加类?

    我在 Yii 中有一个表单 我想向该表单添加一个类
  • javascript 选择自定义光标 (svg)

    我正在动态地将光标更改为悬停时的本地 svg element on mouseover function this css cursor url svgs pointer svg 9 30 auto 工作正常 但我想选择该 svg 来操纵其
  • 如何使使用 css 调整大小的图像在 IE 中看起来不错?

    当使用 css 宽度 高度或属性宽度 高度缩放图像时 IE6 和 IE7 无法很好地缩放网页中的图像 我不确定它默认使用哪种算法 但这不好 在这些浏览器中缩放时 缩放图像会显示锯齿伪影 幸运的是 有一种方法可以通过简单的 css 规则强制
  • 如何通过单击链接来更改 div 的内容?

    这是我的网页的 修改后的 jsfiddle 它还有很多 而且定位是正确的 与此相反 http jsfiddle net ry0tec3p 1 http jsfiddle net ry0tec3p 1 a href class btn1 st
  • 如何在模态打开时防止主体滚动

    我在用着W3schools 模态脚本 https www w3schools com howto tryit asp filename tryhow css modal我想添加一个功能 防止模型打开时整个主体滚动 我根据我的需要对原始脚本做
  • 使用javascript动态更新css内容

    需要将 css 更新为动态值 我不确定最好的方法是什么 div style zoom 1 div 缩放级别将根据窗口大小调整触发 应用程序将相应缩放 我将此应用程序加载到 cordova 中并让它在 iPAD 中运行 然后我意识到需要使用
  • 使用 CSS 折叠和展开元素

    我正在尝试构建一个页面 加载时仅可见标题 并且 当用户单击标题时 每个标题下方的表格会在隐藏和显示状态之间切换 我的限制是只能在 CSS 中执行此操作 这是我到目前为止想到的 https jsfiddle net Argoron c1ypx
  • jQuery 生成 div 和碰撞检测

    所以我的学校作业项目快要结束了 我只是错过了两件我似乎无法弄清楚的主要事情 1 如何生成具有随机位置的间隙的管道障碍物 以便鸟可以飞过 尝试使用一个函数来更改间隙位置的管道 div 的 css right attr 并在以下情况下移除管道它
  • 将 SVG 的高度设置为行高?

    我想将我的 SVG 图像作为图标包含在标题旁边 h1 img src icon sell svg class icon Verkaufen h1 字体大小为h1 is 36px和line heigt is 1 1 我使用检查器工具发现计算出
  • 先按行再按列布局 div

    我有一个容器div and 3 div里面如下 div div 1 div div 2 div div 3 div div 不知道每一个的内容div内部 但它们的高度和宽度是可变的 集装箱的高度由最高的决定div inside 我想展示这些

随机推荐

  • 神舟笔记本进入BIOS的方法

    最近整了一个i9 8950h的神舟笔记本 默认预装的是windows 10 总结一下进入BIOS的方法 方法一 重启电脑 黑屏的时候 不断按F2键 这个方法的优点是操作简单 缺点是有时候会进不去 直接进入桌面 方法二 系统设置 gt 更新和
  • IDEA工作常用快捷键

    ide快捷键 Intellij IDEA 移动光bai标du到行尾的快捷键是End Intellij IDEA 移动光标到行首的快捷键是Home Home End键的意思是开头 结尾 在记事dao本或word等其他文本工具中也有同样的效果
  • Java的Integer.valueOf()初窥

    前言 今天在做题时 碰到了一道选择题 就是关于Integer valueOf 的知识 题目如下 A System out println i01 i02 B System out println i01 i03 C System out p
  • js string转json有斜杠_详解json串反转义(消除反斜杠)

    JSon串在被串行化后保存在文件中 读取字符串时 是不能直接拿来用JSON parse 解析为JSON 对象的 因为它是一个字符串 不是一个合法的JSON对象格式 例如下面的JSON串保存在文件中 读出来不能直接解析 resourceId
  • C++类模板的特化(三)

    本文主要介绍类模板的特化 局部特化和缺省模板实参 1 类模板的特化 类模板的特化 Class Template Specialization 是指为特定的模板参数提供自定义实现的过程 通过特化 我们可以针对某些特定的类型或条件提供不同的行为
  • Java分页工具类

    通用分页工具类 import java io Serializable import java util List b 分页通用类 b author hcw param
  • 自定义同步器

    自定义同步器 假如你想要实现一个自定义同步器 官方推荐的做法是将继承了AQS类的子类作为自定义同步器的内部类 而自定义同步器中相关的操作只需代理成子类中对应的方法即可 往下用一个简单的例子看看如何实现自己的锁 由于同步器被分为两种模式 独占
  • [USACO

    网址链接或者是链接 题目描述 After spending so much time around his cows Farmer John has started to understand their language Moreover
  • 域用户登录的方式-使用登录主名和登录名登录

    1 1 1 域用户登录的方式 以下演示域用户使用登录名或登录主名在域中的计算机上登录 销售部的域用户账号 王瑞胜 在销售部的计算机Sales上登录 默认显示上次登录过的帐户 点击 切换用户 点击 其他用户 使用登录名登录 输入ESS wan
  • C++类型擦除

    转自 http www cnblogs com liyiwen archive 2009 12 10 1621451 html 关于类型擦除 在网上搜出来的中文资料比较少 而且一提到类型擦除 检索结果里就跑出很多 Java 和 C 相关的文
  • 使用Clang作为编译器 —— Assembling a Complete Toolchain

    装配一个完整的工具链 1 介绍 2 工具 2 1 Clang 前端 2 2 其他语言的语言前端 2 3 汇编器 2 4 链接器 3 运行时库 3 1 编译器运行时 Compiler runtime 3 2 原子库 Atomics libra
  • maven学习笔记 maven的安装和配置

    maven是什么 maven是一个Java项目管理工具 maven提供了大量命令行工具 可以方便的管理java项目建立 开发 测试 打包 生成 部署等各个生命周期的操作 极大的方便开发者 同时 maven还提供了统一的项目结构 简化了项目的
  • Matlab 自编雅可比矩阵 (jacobi) 函数与官方的Jacobian matrix(雅可比矩阵)函数对比及创新

    目录 0 引言 1 雅可比矩阵 2 matlab中函数表达式两种方法 2 1 符号表达式 2 2 函数句柄 2 3 函数句柄与符号表达式相互转化 2 4 常会用到的一些函数 3 自编代码 4 官方函数 5 参考文献 0 引言 最近遇到了一些
  • 点云边界提取及可视化

    include
  • qt自定义qtablemodel实现改变item的背景色

    如果你使用的是qtablewidget就非常简单 只需要 qtablewidget gt item i j gt setBackground QBrush 0 0 0 如果你的qtableview的时候 需要使用自定义模型 也就是继承QAb
  • SQL server 2016 安装步骤

    SQL server 2016 安装步骤 1 进入安装中心 可以参考硬件和软件要求 可以看到一些说明文档 2 选择全新安装模式继续安装 3 输入产品秘钥 这里使用演示秘钥进行 4 在协议中 点击同意 并点击下一步按钮 继续安装 5 进入全局
  • 程序出现以下报错现象 解决办法 在程序开始加上 from urllib request import urlopen
  • 基于FPGA的一维卷积神经网络CNN的实现(七)池化层实现

    池化层实现 环境 Pytorch Pycham Matlab 订阅后有问题 或者需要该节的文件 请私信 说明 上一节已经介绍了卷积层电路实现的原理 这一节主要介绍池化层实现的原理 第一节 基于FPGA的一维卷积神经网络CNN的实现 一 框架
  • PHP数字金额转中文大写金额

    今天开发一个项目功能的时候突然需要将数字金额转换成大写中文金额 故在百度搜索了一翻 再针对性都修改一点点 记录此处 金额转汉字大写 function cny ns static cnums array 零 壹 贰 叁 肆 伍 陆 柒 捌 玖
  • 微信小程序开发布局——Flex

    微信小程序开发布局 Flex 问题背景 微信小程序页面布局方式采用的是 Flex 布局 本文将介绍微信开发过程Flex布局的相关知识 问题分析 1 任何一个容器都可以指定为Flex布局 box display flex 行内元素也可以使用F