微信小程序-flex布局:垂直、水平方向-自动填充满剩余空间

2023-11-13

在微信小程序项目中经常需要将水平或垂直方向分成两大部分,一部分内容宽度或高度固定,剩余的一部分需填充满剩余空间。那么,该怎么快速解决这类布局?
效果图如下:

垂直方向
在这里插入图片描述
水平方向:
在这里插入图片描述

我个人比较喜欢使用flex布局,面对此类布局,最先想到的也是flex布局。常见的flex布局中,可设置flex:1,相当于设置父盒子display:flex,即伸缩布局,flex为1,是子盒子占了一份,自动放大填满剩余的空间。若还有另一个子盒子也设置flex;1,即这个父盒子被两个子盒子平分,各占一半。若另一个子盒子设置flex:2,也就是父盒子被所有子盒子平分成3份,以此类推。
常见的flex属性值:
1.flex:1,也就是flex-grow:1,也就是上面说的自动放大填充满剩余空间,若有其他子盒子设置flex,则平分。
2.flex:0 0 auto,等同于flex:none,子元素的长度决定它的长度,当整体空间不足时,它也不会缩小,有剩余空间也不放大。相当于它是由子元素固定大小,不放大也不缩小。
3.flex:1 1 auto,等同于flex:auto,由子元素的宽(width)高(height)属性来改变大小。如果和flex:0 0 auto一起使用就是自适应宽度,自动填充剩余空间。

以下为水平和垂直方向例子:
假设页面高度为100%,第一部分的高度为200rpx,那么剩余的部分填充满剩余空间。container2为页面的外层元素,拆分为两个部分,第一部分为red,另一部分为blue。
要想页面高度一开始就是100%,可以在wxss中设置page样式。

page {
  width: 100%;
  height: 100%;
}

1.垂直方向:
wxml完整代码如下:

<view class="container2">
  <view class="fixedWidth">
    <view class="red">1</view>
  </view>
  <view class="autoFullWidth">
    <view class="blue">2</view>
  </view>
</view>

wxss完整代码如下:
注意:
container2需要设置display: flex;flex-direction: column;(column为垂直方向)
剩余空间autoFullWidth需要用定位,
要不然剩余空间就不会自动占满100%,

page {
  width: 100%;
  height: 100%;
}

.container2 {
  width: 100%;
  height: auto;
  min-height: 100%;
  background-color: #fff;
  position: relative;
  display: flex;
  flex-direction: column;
}

/* 固定宽度 */
.fixedWidth {
  flex: 0 0 auto;
}

/* 自适应宽度 */
.autoFullWidth {
  flex: 1 1 auto;
  position: relative;
}

.blue {
  background: blue;
  display: flex;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  font-size: 120rpx;
  color: #fff;
}

.red {
  background: red;
  height: 200rpx;
  font-size: 120rpx;
  color: #fff;
}

2.水平方向
wxml完整代码如下:

<view class="container2">
  <view class="fixedWidth">
    <view class="red">1</view>
  </view>
  <view class="autoFullWidth">
    <view class="blue">2</view>
  </view>
</view>

wxss完整代码如下:
注意:
container2需要设置display: flex;flex-direction: row;(row为水平方向)
剩余空间autoFullWidth需要用定位,
要不然剩余空间就不会自动占满100%,

page {
  width: 100%;
  height: 100%;
}

.container2 {
  width: 100%;
  height: auto;
  min-height: 100%;
  background-color: #fff;
  position: relative;
  display: flex;
  flex-direction: row;
}

/* 固定宽度 */
.fixedWidth {
  flex: 0 0 auto;
}

/* 自适应宽度 */
.autoFullWidth {
  flex: 1 1 auto;
  position: relative;
}

.blue {
  background: blue;
  display: flex;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  font-size: 120rpx;
  color: #fff;
}

.red {
  background: red;
  width: 200rpx;
  height: 100%;
  font-size: 120rpx;
  color: #fff;
}

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

微信小程序-flex布局:垂直、水平方向-自动填充满剩余空间 的相关文章

  • 文本后面有粗下划线

    如何使用 span 和 css 在文本 ABC 后面重现这种下划线 我已经能够做下划线below嵌套的文本span和彩色的border bottom 但无法获取behind图像和above文本基线 p style font size 48p
  • 两个 Div 之间的固定宽度间隙

    有谁知道如何修复两个 div 之间的间隙 我有一个主要内容 Div 里面有两个带有图片的 Div 视图的宽度为 768 像素 当我开始拉伸视图时 两张图片开始相互远离 但理想情况下 主要内容 Div 应该在周围有空白的情况下拉伸 并且图片之
  • CSS3 box-shadow 用于类似重叠的 div

    我正在尝试用css3来实现这种效果 HTML 代码显然是这样的
  • 从 Bootstrap 中删除字形

    如何从 bootstrap 3 中删除所有字形实例 看起来它已经大量嵌入到 css 文件中了 我正在努力使文件大小尽可能最小 只需简单地克隆引导程序https github com twbs bootstrap sass https git
  • Flexbox 不适用于 iPad 和 Safari [重复]

    这个问题在这里已经有答案了 我在网站上使用 Flexbox 但它在 iPad Air iPad 3 和 Safari PC 上崩溃 设计和代码与此 codepen 类似 http codepen io anon pen xwJzEg htt
  • 垂直对齐复选框标签? [复制]

    这个问题在这里已经有答案了 我有这样的复选框
  • 每 3 秒重复一次动画

    我正在使用 WOW js 和 animate css 现在我正在将 CSS 运行到 Infinite 我想知道如何让我的课程运行 3 秒停止并再次开始到无限 My html img src images fork png class for
  • 如何更改bootstrap中form-control弹出窗口中必填字段的默认消息?

  • 保持未知数量的 div 居中,每行最多 4 个

    我有一个简单的问题 但我自己无法解决 简而言之 有一个未知电话我必须在页面中放置的元素数量 最多 每行 4 个元素 但仍居中 此图片给您一个提示 我为了示例而设置它 详细 在上图中我涵盖了不同的场景 例如 如果总共有 5 个元素 则应使用第
  • 更改文本输入标签中文本的大小?

    我有一个很大的文本输入框 但我无法更改字体大小
  • 如何更改文本选择背景颜色

    我的意思是 当您选择一些 HTML 文本时 背景中会有一种颜色告诉您选择了哪个文本 怎么可能通过CSS来改变它呢 我需要它是白色的 透明的 我已经看到这样做了 您可以使用某些 CSS 选择器来更改所选文本的 CSS 属性 我对此进行了测试
  • 如何在 leaflet.js 中设置 layer.control 的样式?

    我正在尝试更改图层控件中的默认下拉菜单图标 我希望图标旁边有文字 有什么办法可以做到这一点吗 也许使用 JQuery 和 CSS 我正在开发一个基于此示例的传单项目 http leafletjs com examples layers co
  • Firefox 插件查找未使用的 CSS 样式[重复]

    这个问题在这里已经有答案了 可能的重复 识别未使用的 CSS 定义的工具 https stackoverflow com questions 135657 tool to identify unused css definitions 假设
  • CSS 中的 * 有什么作用?

    明星是做什么的 这叫什么 对我来说 这是某种通配符 它叫什么名字 以便我可以阅读它 div zoom 1 this zoom 1 display inline display inline and this whats the differ
  • 在 TCPDF 中设置背景颜色

    我已经手动设置了第一页的背景颜色 如下所示 pdf gt AddPage pdf gt SetFillColor 52 21 0 76 pdf gt Rect 0 0 pdf gt getPageWidth pdf gt getPageHe
  • 父>子CSS选择器

    我经常使用这个CSS选择器parent gt child 我的设计在 Mozilla 和 Opera 中看起来不错 但在 IE 中 就很糟糕了 我知道 gt 在 IE 中无法识别 但是 IE 中的替代方案是什么 一种替代方法是使用通用选择器
  • Excel 类似 HTML 表格,可在 x 轴(完整表格)和 y 轴(标题固定)上滚动

    我想建立一个具有固定宽度列的表格 在大多数情况下 表数据会水平和垂直溢出 如果列的宽度大于视图宽度 则需要水平滚动条来滚动并查看所有表列 同时滚动标题和数据 如果数据的高度大于可用视图 则会出现垂直滚动框 但在滚动时保持标题固定 以便用户关
  • 使用文本遮盖视频

    是否可以使用 HTML CSS 文本来屏蔽视频 我已经找到并设置了这种工作方式 但没有一种允许文本后面有透明背景 例如 这支笔要求您进行某种填充 它并不是真正掩盖实际视频 而是创造幻觉 https codepen io dudleystor
  • 使用 jquery 提供附加功能时菜单未正确对齐

    I need to make a mega menu similar to one as show in image below 到目前为止 我已经能够在某种程度上使其发挥作用 例如jsFiddle 在这里 http jsfiddle ne
  • Bootstrap 3 多个导航栏

    我在 Twitter Bootstrap 3 中的多个引导程序中遇到问题 第一个导航栏可以正常调整大小和响应 第二个导航栏在正常分辨率下无法正常工作 但是当我尝试调整大小以响应并调整大小后 它可以正常工作 这是一些代码

随机推荐

  • 【语义分割】13、SegNeXt

    文章目录 一 背景 二 方法 2 1 Convolutional Encoder 2 2 Decoder 三 效果 论文 SegNeXt Rethinking Convolutional Attention Design for Seman
  • 详解多线程中的互斥量;mutex头文件,lock与unlock ,lock_guard,unique_lock

    互斥量 假如你有一张水卡 要放在卡槽才能出水 现在你和小明都要热水 于是你接一下热水 用自己的水卡 他又接一下热水 巧了 两人都接到泡面的热水 互斥量是在Mutex的头文件中 并发的优点 可以极的减少时间 并且能够多个进程的运行东西 并发的
  • pca处理后建模 sklearn_汽油辛烷值建模

    题目来源 2020年研究生数学建模竞赛B题 小编第一次做研究生的竞赛题目 我的整体感受 首当其冲的是 关于题的描述很多 每一个题的页数都有好几页 说下关于B题 汽油辛烷值建模 的思考 就B题的难易程度来说 这个题太容易了 不论从数据量 还是
  • 26.kotlin的get和set方法

    1 kotlin类中的get和set方法 fun main args Array
  • 数据结构--二叉树进阶

    因为我们之前在学习数据结构的时候使用的是C语言 但是并不是所有的数据结构都适合使用C语言学习 如今我们了解了C 的基础语法 具备了学习这些稍微难一点的数据结构的前提 所以我们再次回顾数据结构 使用C 这一更加先进的武器 来解决更加复杂的问题
  • 线程池的几种常见的创建的方式

    每次启动一个线程都要创建一个新的浪费资源的 还有时候线程过多的时候回造成服务器崩溃 所以有了线程池的诞生 线程池是用来管理线程的 下面是常用的几种创建线程的方式 一 创建大小不固定的线程池 这是一个线程类 public class Thre
  • 2020-11-26【路灯】动态规划

    2020 11 26 路灯 动态规划 题目描述 一条长l的笔直的街道上有n个路灯 若这条街的起点为0 终点为l 第i个路灯坐标为ai 每盏灯可以覆盖到的最远距离为d 为了照明需求 所有灯的灯光必须覆盖整条街 但是为了省电 要使这个d最小 请
  • SpringCloud Ribbon客服端负载均衡

    Ribbon与Nginx区别 服务器端负载均衡Nginx nginx是客户端所有请求统一交给nginx 由nginx进行实现负载均衡请求转发 属于服务器端负载均衡 既请求有nginx服务器端进行转发 客户端负载均衡Ribbon Ribbon
  • 文件的读写基本操作

    一 文件是计算机中数据持久化存储的表现形式 读写文件标准操作格式1 1 打开文件 file1 open 文件名 读写模式 2 操作文件 3 关闭文件 file1 close 文件操作完毕后必须关闭 否则长期保持对文件的连接状态 造成内存溢出
  • 龙书笔记(13)

    chap 13 地形绘制基础 主要是创建一个 地形类 Terrain 1 高度图 其实是一个数组 每个元素都指定了地形方格中某一顶点的高度值 每个元素只分配了1个字节的存储空间 当加载到程序时 重新分配 浮点型 或 整型 数据来存储这些高度
  • CentOS7开机时的菜单选项及时间的修改

    转载记录 以防丢失 一 在CentOS更新后 并不会自动删除旧内核 所以在启动选项中会有多个内核选项 可以手动使用以下命令删除多余的内核 正常下 第一个选项正常启动 第二个选项急救模式启动 系统出项问题不能正常启动时使用并修复系统 1 查看
  • 记录一下树莓派打内核补丁cjktty的天坑

    首先cjktty的下载地址在此 大家根据自己的linux内核去选择 https github com zhmars cjktty patches 下载好了补丁文件之后 需要下载完整的linux内核 是的完整的 https github co
  • ahut 月赛1

    心得 一点一点理解 对于一段要学习的代码 跟着写下来 理解一点写一点 对于一道题目 用记事本 看题目 看一句题目 用自己的话概括一句 写在记事本上 并将自己的 想法一并写下来 这样做下来 心会很平静 你会发现 理解一段代码并不费力 解决一道
  • Cookie、cookie与session区别

    Cookie Cookie 有时也用其复数形式 Cookies 类型为 小型文本文件 是某些网站为了辨别用户身份 进行Session跟踪而储存在用户本地终端上的数据 通常经过加密 由用户客户端计算机暂时或永久保存的信息 Cookie有什么用
  • 一个字节造成的巨大性能差异——SQL Server存储结构

    今天同事问了我一个SQL的问题 关于SQL Server内部存储结构的 我觉得挺有意思 所以写下这篇博客讨论并归纳了一下 问题是这样的 首先我们创建两张表 一张表的列长度是4039字节 另一张表的长度是4040字节 他们就只有一个字节的差距
  • 阿里巴巴 cola设计架构

    https github com alibaba COLA
  • leetcode 21 合并两个有序链表 (c++和python)

    目录 题目描述 解题思路 C 代码 python代码 题目描述 将两个有序链表合并为一个新的有序链表并返回 新链表是通过拼接给定的两个链表的所有节点组成的 示例 输入 1 gt 2 gt 4 1 gt 3 gt 4 输出 1 gt 1 gt
  • golang的chan(管道)

    golang的chan翻译成中文就是管道 顾名思义 就是管道的一端用来读 另一端用来写 这与write和read函数的性质是非常相似的 比如说管道中没数据 就会发生读阻塞 管道中数据是满的 就会发生写阻塞 又类似生产者和消费者 也就是必须有
  • 大学生python实验心得体会_大学生实训心得体会3篇

    转眼间为期两个星期的实训就结束了 但是安利公司的物流配送 黄埔港 益邦物流公司 南沙港以及学校里面的航海模拟实验中心 轮机实训实验楼这些实训过程仍历历在目 以下是小编整理的大学生实训心得体会 欢迎阅读 大学生实训心得体会1 通过实训中心老师
  • 微信小程序-flex布局:垂直、水平方向-自动填充满剩余空间

    在微信小程序项目中经常需要将水平或垂直方向分成两大部分 一部分内容宽度或高度固定 剩余的一部分需填充满剩余空间 那么 该怎么快速解决这类布局 效果图如下 垂直方向 水平方向 我个人比较喜欢使用flex布局 面对此类布局 最先想到的也是fle