Flex布局实战

news/2024/7/20 3:27:24 标签: 小程序

Flex布局简介

Flex布局是一种用于网页布局的现代CSS布局模型。它使用flex容器和flex项来实现灵活的、响应式的布局。Flex容器是父元素,内部包含一系列的flex项。Flex项可以根据指定的规则自动调整尺寸和位置,以适应不同的屏幕大小和设备类型。

Flex布局初概念

在这里插入图片描述

Flex布局,全称Flexible Box布局,是一种在CSS3中引入的新的布局方式。

采用Flex布局的元素被称为Flex项目(Flex items),这些元素在Flex容器(Flex container)内部自动成为其成员。Flex容器可以包含一个或多个Flex项目。

Flex布局的主要特点在于其具有两根轴:主轴和侧轴。主轴的起始位置与边框的交叉点被称为main start,结束位置被称为main end;侧轴的起始位置叫做cross start,结束位置叫做cross end。

Flex项目在主轴上默认是线性排列的,而在交叉轴上的排列则由flex-direction属性定义,该属性有四个可能的值:row(默认值,项目从左向右排列)、row-reverse(项目从右向左排列)、column(项目从上向下排列)和column-reverse(项目从下向上排列)。

此外,Flex容器可以设置其子元素的弹性空间(flex space),并通过flex-grow和flex-shrink属性来控制其子元素如何分配这些空间。

Flex布局的使用可以简化传统布局中一些复杂的布局问题,使得页面在不同屏幕和设备上呈现出最佳效果。

Flex布局设置

1、Flex布局属性及其作用和属性值以及描述

属性名作用属性值描述
display用于将元素设置为弹性盒子或行内弹性盒子flex将元素设置为弹性盒子
flex-direction定义主轴的方向,决定子元素如何在主轴上排列row 、row-reverse、column、column-reverse设置主轴的方向为水平方向或垂直方向,或它们的反向方向
justify-content定义在主轴上的对齐方式,决定子元素如何沿着主轴排列flex-start, center, flex-end, space-between, space-around, space-evenly设置子元素在主轴上的对齐方式,如起点、中心、终点或均匀分布
align-items定义在侧轴上的对齐方式,决定子元素如何沿着侧轴排列flex-start, center, flex-end,baseline, stretch设置子元素在侧轴上的对齐方式,如顶部对齐、底部对齐、中心对齐或按比例填充空间
flex-wrap控制子元素是否换行,默认为nowrap,还有wrap和wrap-reverse可选nowrap, wrap, wrap-reverse控制子元素是否换行排列,或不换行反向排列
flex-flow是flex-direction和flex-wrap的简写形式,用于设置主轴和侧轴的对齐方式[row](javascript:void(0)) [nowrap](javascript:void(0)) 、 [row](javascript:void(0)) [wrap](javascript:void(0)) 、 [row](javascript:void(0)) [wrap-reverse](javascript:void(0)) 、 [column](javascript:void(0)) [nowrap](javascript:void(0)) 、 [column](javascript:void(0)) [wrap](javascript:void(0)) 、 [column](javascript:void(0)) [wrap-reverse](javascript:void(0))设置主轴和侧轴的对齐方式,包括是否换行排列
align-content当子元素在侧轴上有多行时,用于定义它们的对齐方式flex-start, center, flex-end, space-between, space-around, space-evenly当子元素有多行时,设置它们在侧轴上的对齐方式,如顶部对齐、底部对齐、中心对齐或均匀分布
flex-grow用于设置元素的弹性空间,正值表示可以放大,0表示不放大number (如 1, 2, …) 或 0 (default)设置元素的弹性空间因子,可以放大元素的空间占用比例
flex-shrink用于设置元素的弹性收缩,正值表示可以缩小,0表示不缩小number (如 1, 2, …) 或 0 (default)设置元素的弹性收缩因子,可以缩小元素的空间占用比例
flex-basis用于设置元素的基本尺寸,类似于宽度或高度,但可被弹性空间调整length (如 20px, 5em,) 或 auto (default)设置元素的基本尺寸,可以影响弹性空间占用的尺寸比例

2、创建小程序项目

  1. 在 index.wxml文件中添加如下标签

在这里插入图片描述

代码:

<navigation-bar title="Weixin" back="{{false}}" color="black" background="#FFF"></navigation-bar>
<view class="flex">
  <view>1</view>
  <view>2</view>
  <view>3</view>
</view>
  1. 在index.wxss文件中添加如下样式

代码:

.flex {
     width: 320px;
     height: 460px;
     background-color: pink;
}

.flex view {
     width: 80px;
     height: 80px;
     background-color: gray;
     color: wheat;
     text-align: center;
     border: 1px solid #e4e4e4;
     box-sizing: border-box;
}

添加了上面的标签和样式,接下来就可以进行Flex布局了。

3、设置在主轴上的排列方式

3.1 justify-content属性和属性值以及作用

默认情况下,主轴的方向是从左到右。在主轴方向上,可以通过 justify-content 属性来设置他们的排列方式。justify-content常用的属性值有以下几种:

属性名属性值描述
justify-contentflex-start主轴从起点开始排列,第一个子元素在左边,默认排列。
justify-contentflex-end主轴从终点开始排列,最后一个子元素在右边。
justify-contentcenter主轴所有子元素盒子水平居中。
justify-contentspace-around主轴控制所有子元素盒子间距相等,左右两边子元素到容器边缘的距离相等。
justify-contentspace-between第一个和最后一个子元素盒子分别靠在主轴的两端,中间子元素盒子之间的距离相等。
justify-contentspace-evenly主轴上所有子元素盒子之间的距离相等,第一个和最后一个子元素盒子到容器边缘的距离相等。

3.2 flex-start

子元素在父元素的左侧排列,默认排列

在index.wxss文件中.flex类样式中设置主轴排列方式为 justify-content: flex-start; 效果如下所示。

在这里插入图片描述

3.3 flex-end

子元素在父元素的右侧排列

修改index.wxss文件中的.flex类样式中justify-content的值为flex-end; 效果如下所示。

在这里插入图片描述

3.4 center

子元素在父元素的中间排列

修改index.wxss文件中的.flex类样式中justify-content的值为center; 效果如下所示。

在这里插入图片描述

3.5 space-around

主轴控制所有子元素盒子间距相等,左右两边子元素到容器边缘的距离相等

修改index.wxss文件中的.flex类样式中justify-content的值为space-around; 效果如下所示。

在这里插入图片描述

3.6 space-between

第一个和最后一个子元素盒子分别靠在主轴的两端,中间子元素盒子之间的距离相等。

修改index.wxss文件中的.flex类样式中justify-content的值为space-between; 效果如下所示。

在这里插入图片描述

3.7 space-evenly

主轴上所有子元素盒子之间的距离相等,第一个和最后一个子元素盒子到容器边缘的距离相等。

修改index.wxss文件中的.flex类样式中justify-content的值为space-evenly; 效果如下所示。

在这里插入图片描述

4、设置在侧轴上的排列方式

4.1 align-items属性和属性值以及作用

默认情况下,侧轴的方向是从上到下。在侧轴方向上,可以通过 align-items 属性来设置他们的排列方式。align-items常用的属性值有以下几种:

属性名属性值描述
align-itemsflex-start侧轴上的子元素对齐到起点,默认排列
align-itemsflex-end侧轴上的子元素对齐到终点
align-itemscenter侧轴上的子元素在容器中居中对齐
align-itemsstretch侧轴上的子元素沿主轴方向拉伸以填满容器
align-itemsbaseline基线对齐

4.2 flex-start

侧轴上的子元素对齐到起点,默认排列

在index.wxss文件中.flex类样式中设置侧轴排列方式为 align-items: flex-start; 效果如下所示。

在这里插入图片描述

4.3 flex-end

侧轴上的子元素对齐到终点

修改index.wxss文件中的.flex类样式中align-items的值为flex-end; 效果如下所示。

在这里插入图片描述

4.4 center

侧轴上的子元素在容器中居中对齐

修改index.wxss文件中的.flex类样式中align-items的值为center; 效果如下所示。

在这里插入图片描述

4.5 stretch

如果子元素未设置高度或设为auto,那么子容器将占满整个容器的高度

修改index.wxss文件中的.flex类样式中align-items的值为stretch; 我们将子元素的高度给注释掉,效果如下所示。

在这里插入图片描述

4.6 baseline

基线对齐,基线是文本字符的底部线,这意味着如果你的Flexbox项目包含文本,那么这些文本将尽可能地与它们的容器的基线对齐。

修改index.wxss文件中的.flex类样式中align-items的值为baseline ; 效果如下所示。

在这里插入图片描述

在这里插入图片描述

5、设置主轴方向

5.1 flex-direction属性和属性值以及作用

默认情况下,主轴方向为从左到右,可以通过 flex-direction 属性来设置他们的排列方式。flex-direction常用的属性值有以下几种:

属性属性值作用
flex-directionrow默认值,主轴为水平方向,从左到右排列
flex-directionrow-reverse主轴为水平方向,从右到左
flex-directioncolumn主轴为垂直方向,从上到下
flex-directioncolumn-reverse主轴为垂直方向,从下到上

flex-direction属性决定了弹性容器中子元素的排列方向。以上表格列出了四种可能的值以及它们的作用。这些值可以用于创建不同的布局效果,例如水平或垂直的线性布局或反向布局。通过灵活地使用这个属性,开发人员可以轻松地控制页面元素的布局。

5.2 row

主轴方向为从左到右,默认排列

在index.wxss文件中.flex类样式中设置主轴方向为 flex-direction: row; 效果如下所示。

在这里插入图片描述

5.3 row-reverse

主轴方向为从右到左

修改index.wxss文件中的.flex类样式中flex-direction的值为row-reverse; 效果如下所示。

在这里插入图片描述

5.4 column

主轴方向为从上到下

修改index.wxss文件中的.flex类样式中flex-direction的值为column; 效果如下所示。

在这里插入图片描述

5.5 column-reverse

主轴方向为从下到上

修改index.wxss文件中的.flex类样式中flex-direction的值为column-reverse; 效果如下所示。

在这里插入图片描述

6、换行

6.1 flex-wrap属性和属性值以及作用

默认情况下,子容器是不换行的。flex-wrap常用的属性值有以下几种:

属性名属性值作用
flex-wrapnowrap默认值。项目不会换行,即使超出容器宽度也会显示在一行上。
flex-wrapwrap项目在超出容器宽度时进行换行。当空间足够时,项目将尽可能并排显示。
flex-wrapwrap-reverse与wrap值类似,但是换行方向相反。即第一行在容器的底部,后续行依次向上排列。

6.2 nowrap

默认值。子容器不会换行,即使超出容器宽度也会显示在一行上。

在index.wxss文件中.flex类样式中设置主轴排列方式为flex-wrap: nowrap; 效果如下所示。

在这里插入图片描述

6.3 wrap

项目在超出容器宽度时进行换行。当空间足够时,项目将尽可能并排显示。

修改index.wxss文件中的.flex类样式中flex-wrap的值为wrap; 并且将高度注释,再添加两个子容器,让效果看的更直观,效果如下所示。

在这里插入图片描述

6.3 wrap-reverse

与wrap值类似,但是换行方向相反。即第一行在容器的底部,后续行依次向上排列。

修改index.wxss文件中的.flex类样式中flex-wrap的值为wrap-reverse; 效果如下所示。

在这里插入图片描述

7、多行排列方式

align-content 是一个CSS属性,用于在flex容器中对齐交叉轴上的flex项目,当有多余空间时。它决定了当存在多余空间或者flex容器被包裹到多行时,flex项目的分布或位置。

7.1 align-content属性和属性值以及作用

默认情况下,项目被拉伸以填满整个容器的交叉轴。align-content常用的属性值有以下几种:

属性名属性值作用
align-contentflex-start将项目对齐到容器的起始位置
align-contentflex-end将项目对齐到容器的末尾位置
align-contentcenter将项目对齐到容器的中心位置
align-contentspace-between在容器中均匀分布项目,首尾项目分别对齐容器的起始和末尾位置
align-contentspace-around在容器中均匀分布项目,项目周围留有等距空间
align-contentstretch默认排列,项目被拉伸以填满整个容器的交叉轴
align-contentinitial将属性重置为默认值
align-contentinherit继承父元素的属性值

7.2 flex-start

将项目对齐到容器的起始位置

在index.wxss文件中.flex类样式中设置主轴排列方式为align-content: flex-start; 效果如下所示。

在这里插入图片描述

7.3 flex-end

将项目对齐到容器的末尾位置

修改index.wxss文件中的.flex类样式中align-content的值为flex-end; 效果如下所示。

在这里插入图片描述

7.4 center

将项目对齐到容器的中心位置

修改index.wxss文件中的.flex类样式中align-content的值为center; 效果如下所示。

在这里插入图片描述

7.5 space-between

在容器中均匀分布项目,首尾项目分别对齐容器的起始和末尾位置

修改index.wxss文件中的.flex类样式中align-content的值为space-between; 效果如下所示。

在这里插入图片描述

7.6 space-around

在容器中均匀分布项目,项目周围留有等距空间

修改index.wxss文件中的.flex类样式中align-content的值为space-around ; 效果如下所示。

在这里插入图片描述

7.6 stretch

默认排列,项目被拉伸以填满整个容器的交叉轴

修改index.wxss文件中的.flex类样式中align-content的值为stretch; 效果如下所示。

在这里插入图片描述


http://www.niftyadmin.cn/n/5050641.html

相关文章

springboot 下载文件为excel数据,中文自定义单元格宽度

/**2 * Description:表格自适应宽度(中文支持)3 * Author: 4 * param sheet sheet5 * param columnLength 列数6 */7 private static void setSizeColumn(HSSFSheet sheet, int columnLength) {8 for (int columnNum 0; columnNum < …

SpringCloudStream+Rocket事务消息配置

本文用到的版本 spring-cloud-stream 3.2.6 rocketmq-client 4.9.4 spring-cloud-starter-stream-rocketmq 2021.0.5.0 一、依赖导入 <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-stream-rocketmq</art…

ubuntu http 服务器响应

代码&#xff1a; h文件 #include <iostream> #include <curl/curl.h>#include <net/if.h> #include <sys/ioctl.h> #include <arpa/inet.h> #include <string.h>#include <event.h> #include <event2/http.h> #include <…

数据结构:堆的简单介绍

目录 堆的介绍:(PriorityQueue) 大根堆:根节点比左右孩子节点大 小根堆:根节点比左右孩子节点小 堆的存储结构: 为什么二叉树在逻辑上用满二叉树结构,而不是普通二叉树呢? 因为如果是普通二叉树会造成资源的浪费​编辑 堆的介绍:(PriorityQueue) 堆又称优先级队列,何为优先…

第一章:最新版零基础学习 PYTHON 教程(第十三节 - Python 条件和循环语句–Python 尝试异常)

Python 中的错误有两种类型,即语法错误和异常。错误是程序中出现的问题,导致程序停止执行。另一方面,当发生一些改变程序正常流程的内部事件时,就会引发异常。 一些常见的异常错误是: IOError:如果文件无法打开KeyboardInterrupt:当用户按下不需要的键时ValueError:当…

知识图谱(5)知识表示

基于Node2Vec补全KG 知识图谱属于异质图&#xff0c;图谱包含三个元素&#xff1a;实体&#xff08;图中的节点&#xff09;&#xff0c;类型&#xff08;节点的标识&#xff09;&#xff0c;关系&#xff08;边的标识&#xff09;。KG就是把所有不同种类的信息连接在一起而得…

Linux下进度条程序实现以及自动化构建工具makefile的实现和对回车键的理解

在实现进度条之前我们要了解一些有关实现进度条的知识。例如回车和makefile的使用 自动化构建工具&#xff1a;makefile makefile实现的目的就是可以进行自动化的编译与自动化清理&#xff0c;即实现好了makefile之后&#xff0c;仅仅使用make指令就可以直接完成程序的编译过…

复亚智能落地江苏化工,安防巡逻无人机守牢“安全线”

化工业是国民经济的重要组成部分&#xff0c;但其生产环境和条件充满了挑战。大部分化学反应发生在高温、高压且有毒的环境中&#xff0c;而近70%的原料、中间体和终产品都带有易燃、易爆、有毒、有害以及腐蚀性的特性。在这样的情境下&#xff0c;安全生产不仅仅是一项日常任务…