深入浅出了解Flex弹性布局(一)

Floria ·
更新时间:2024-09-20
· 597 次阅读

文章目录一、布局回顾二、弹性布局 一、布局回顾

布局从无到有经历了几个阶段:

姓名
编号 姓名 年龄 性别 部门 职位

效果图为:
在这里插入图片描述
通过这段代码,说明form表单对齐方式的几个问题:

把form-group看成行,通过栅格系统进行行内划分。 input、select等不能单独地直接参与布局,需要加div进行控制。 如果想让两个select在一行中,就需要进行行内嵌套。或者通过input-group进行改变外在的表现形式。 使用横向排列方式form-horizontal,而不是使用form-inline。 二、弹性布局

1、基本概念

与之前的布局观念有所不同,之前,大部分布局使用table布局,是容器、行、列三层的结构。如今,采用 Flex 布局的元素,称为 Flex 容器(flex container),简称"容器"。它的所有子元素自动成为容器成员,称为 Flex 项目(flex item),简称"项目"。
在这里插入图片描述
容器默认存在两根轴:水平的主轴(main axis)和垂直的交叉轴(cross axis)。主轴的开始位置(与边框的交叉点)叫做main start,结束位置叫做main end;交叉轴的开始位置叫做cross start,结束位置叫做cross end。

项目默认沿主轴排列。单个项目占据的主轴空间叫做main size,占据的交叉轴空间叫做cross size。
2、容器的属性

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

flex-direction flex-wrap flex-flow justify-content align-items align-content

flex-direction属性
决定主轴的方向(即项目的排列方向)。

.container{ display: flex; /** *flex-direction: *1.row 横向排列 *2. row-reverse *3、column 纵向排列 *4、column-reverse */ flex-direction:column; } flex-direction
1
2
3

效果图为:
在这里插入图片描述
它的四个常用值是:

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

flex-wrap属性

默认情况下,项目都排在一条线(又称"轴线")上。flex-wrap属性定义,如果一条轴线排不下,如何换行。

flex-wrap(换行) .container{ display: flex; width:300px; height:50px; border:1px solid; /** *flex-wrap: *1、nowrap *2、wrap *3、wrap-reverse */ flex-wrap:wrap-reverse; } .item{ width:120px; height:50px; border:1px solid; }
1
2
3

效果图为:
在这里插入图片描述

它的三个常用值是:

nowrap(默认):不换行 wrap:换行,第一行在上方 wrap-reverse:换行,第一行在下方

flex-flow属性

是flex-direction属性和flex-wrap属性的简写形式,默认值为row nowrap。

.box { flex-flow: || ; }

justify-content属性

定义了项目在主轴上的对齐方式。

justify-content .container{ display:flex; /** justify-content: 1、flex-start 2、flex-end 3、center 4、space-between 5、space-around */ justify-content:space-around; }
1
2
3

效果图为:
在这里插入图片描述它有五个常用值,具体对齐方式与轴的方向有关。下面假设主轴为从左到右。

flex-start(默认值):左对齐 flex-end:总对齐 center:居中 space-between:两端对齐,项目之间的间隔都相等 space-around:每个项目两侧的间隔相等。所以,项目之间的间隔比项目与边框的间隔大一倍。

align-items属性

定义项目在交叉轴上如何对齐。

align-items .item{ width:50px; border:1px solid; margin:10px; } .item-s{ width:120px; border:1px solid; margin:10px; } .item-x{ width:50px; border:1px solid; margin:10px; } .box{ width:600px; display:flex; height:300px; border:1px solid; flex-direction:row; /** align-items: 1、flex-start 2、flex-end 3、center 4、baseline 5、stretch */ align-items:stretch; }
1
2
3

效果图为:

在这里插入图片描述
它有五个常用值。具体的对齐方式与交叉轴的方向有关,下面假设交叉轴从上到下。

flex-start:交叉轴的起点对齐。 flex-end:交叉轴的终点对齐。 center:交叉轴的中点对齐。 baseline:项目的第一行文字的基线对齐。 stretch(默认值):如果项目未设置高度或设为auto,将占满整个容器的高度。

align-content属性

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

align-content .item{ width:50px; border:1px solid; margin:10px; } .item-s{ width:120px; border:1px solid; margin:10px; } .item-x{ width:50px; border:1px solid; margin:10px; } .box { width: 600px; display: flex; height: 300px; border: 1px solid; flex-direction: row; /** align-content: 1、flex-start 2、flex-end 3、center 4、space-between 5、space-around 6、stretch */ flex-wrap:wrap; align-content: stretch; }
1
2
3
4
5
6
7
8
9

效果图为:

在这里插入图片描述该属性有6个常用值:

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

我们利用骰子的单个项目布局来回顾一下以上的语法:

首先我们设定固定的html模板

骰子 .box{ width:200px; height:200px; border:1px solid; border-radius: 25px; position:relative; left:500px; top:300px; } .dot{ width:50px; height:50px; background-color: black; border-radius:60px; } /** 在这里填写代码 */

之后我们将flex布局填进去:

.box { display: flex; }

效果图为:
在这里插入图片描述

.box { display: flex; justify-content: center; }

效果图为:
在这里插入图片描述

.box { display: flex; justify-content: flex-end; }

效果图为:

在这里插入图片描述

.box { display: flex; align-items: center; }

效果图为:
在这里插入图片描述

.box { display: flex; justify-content: center; align-items: center; }

效果图为:
在这里插入图片描述

.box { display: flex; justify-content: center; align-items: flex-end; }

在这里插入图片描述

.box { display: flex; justify-content: flex-end; align-items: flex-end; }

效果图为:
在这里插入图片描述

参考文献:

http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html
http://www.ruanyifeng.com/blog/2015/07/flex-examples.html


作者:锦鲤姑娘



flex 布局 深入浅出

需要 登录 后方可回复, 如果你还没有账号请 注册新账号
相关文章