我是一个70后的东北的程序员,当年用vf、vb、Delphi编程,界面是抠图小妹做方案,我们用编程语言来实现,更多的是研磨数据库与功能。后来转行做管理,离开编程行业多年 。

近来有点时间,对网页前端来了兴趣。学习之后感觉这个乱呀,HTML、css、js都能干一件事情,但谁都干不好。就好像饭桌上又有筷子,又有刀叉,有时还得用手抓一样。

网上各种教材满天飞,要么是个文科生絮絮叨叨地说一顿没个重点,要么是翻译的原文驴唇不对马嘴。

现在把我学习前端的心得,用形象的比喻给大家叙述一遍,帮助真正的程序员快速理解和上手前端界面。把那些“前端工程师”打回“抠图小妹”的原形。

Flex弹性布局,不一样的学习心得

择风顺水
我是一个70后的东北的程序员,当年用vf、vb、Delphi编程,界面是抠图小妹做方案,我们用编程语言来实现,更多的是研磨数据库与功能。后来转行做管理,离开编程行业多年 。
近来有点时间,对网页前端来了兴趣。学习之后感觉这个乱呀,HTML、css、js都能干一件事情,但谁都干不好。就好像饭桌上又有筷子,又有刀叉,有时还得用手抓一样。
网上各种教材满天飞,要么是个文科生絮絮叨叨地说一顿没个重点,要么是翻译的原文驴唇不对马嘴。
现在把我学习前端的心得,用形象的比喻给大家叙述一遍,帮助真正的程序员快速理解和上手前端界面。把那些“前端工程师”打回“抠图小妹”的原形。

Flex-弹性布局
1、flex容器定义
定义这个盒子为弹性布局,以后这里的项目都排版都归她管。
.box {
display: flex;
}

这就是Flex弹性盒子,也可以理解成容器、托盘等,多形象!签子是主轴,筷子是交叉轴。

Flex弹性布局,不一样的学习心得_css

2、容器属性

2.1主轴方向

flex-direction: row; 从左向右排列

Flex弹性布局,不一样的学习心得_抠图_02

拿签子吃的第一块肉的方向,主轴的头部,筷子尖就是交叉轴的头部

flex-direction: row-reverse; 从右向左排列

Flex弹性布局,不一样的学习心得_Delphi_03

flex-direction: column; 从上向下排列

Flex弹性布局,不一样的学习心得_flex_04

flex-direction:column-reverse; 从下向上排列

Flex弹性布局,不一样的学习心得_Delphi_05

2.2主轴多行

flex-wrap: nowrap; (缺省):单行排列

flex-wrap: wrap; 多行排列

Flex弹性布局,不一样的学习心得_flex_06

flex-wrap: wrap-reverse; 多行排列,按从下到上的顺序

Flex弹性布局,不一样的学习心得_抠图_07

flex-flow: row nowrap; 是flex-direction属性和flex-wrap属性的简写

2.3主轴上对齐顺序

justify-content: flex-start; 从头对齐

Flex弹性布局,不一样的学习心得_抠图_08

justify-content: flex-end; 从尾对齐

Flex弹性布局,不一样的学习心得_flex_09

justify-content: center; 居中对齐

Flex弹性布局,不一样的学习心得_flex_10

justify-content: space-between; 均匀对齐(贴边)

Flex弹性布局,不一样的学习心得_抠图_11

justify-content: fspace-around; 等距对齐(双臂距离)

Flex弹性布局,不一样的学习心得_css_12

justify-content: space-evenly; 等距对齐列(单臂距离)

Flex弹性布局,不一样的学习心得_flex_13

2.4交叉轴对齐顺序

align-items: stretch; (缺省):交叉轴拉伸

Flex弹性布局,不一样的学习心得_flex_14

align-items: flex-start; 交叉轴从头对齐

Flex弹性布局,不一样的学习心得_css_15

align-items: flex-end; 交叉轴从尾对齐

Flex弹性布局,不一样的学习心得_抠图_16

align-items: center; 交叉轴居中对齐

Flex弹性布局,不一样的学习心得_Delphi_17

align-items: baseline; 交叉轴文字基线对齐

Flex弹性布局,不一样的学习心得_flex_18

2.5align-content 交叉轴的对齐方式
align-content: stretch; (缺省):拉伸显示

align-content: flex-start; 从头对齐

Flex弹性布局,不一样的学习心得_css_19

align-content: flex-end; 从尾对齐

Flex弹性布局,不一样的学习心得_Delphi_20

align-content: center; 居中对齐

Flex弹性布局,不一样的学习心得_css_21

align-content: space-between; 均匀对齐(贴边)

Flex弹性布局,不一样的学习心得_Delphi_22

align-content: space-around ; 等距对齐(双臂距离)

Flex弹性布局,不一样的学习心得_抠图_23

3、项目属性

3.1 order: 6; 设置项目的名次,缺省0

Flex弹性布局,不一样的学习心得_flex_24

3.2 align-self: auto|flex-start|flex-end|center|baseline|stretch; 单独设置项目的对齐方式,默认为auto,继承父元素的align-items属性,如果没有父元素,则等同于stretch。

设置中间这块大肉筋,单独排队

Flex弹性布局,不一样的学习心得_css_25

设置中间这块大肉筋,单独排队

Flex弹性布局,不一样的学习心得_Delphi_26

3.3 flex-grow:1; 放大比例。flex-grow:1填充整个Flex容器。缺省为0即不放大

Flex弹性布局,不一样的学习心得_抠图_27


中间这块大肉筋占据剩余的所有空间3.4 flex-shrink:0; 缩小倍数,缺省为1

Flex弹性布局,不一样的学习心得_flex_28

中间这块大肉筋缩小了

3.5 flex-basis:20%; 原来尺寸。被放进一个flex容器之前的大小。 缺省 auto
(这个功能,在网上的教程,都是唠唠叨叨地,没有一个能看懂,直接拷贝上来,以后慢慢悟吧)

简写:
Flex属性是flex-grow, flex-shrink 和 flex-basis
默认值 flex 0 1 auto; 默认值即在有剩余空间时,只放大不缩小
(2)flex: none|flex:0 0 auto; 即有剩余空间时,不放大也不缩小,最终尺寸通常表现为最大内容宽度。
(3)flex: 0|flex:0 1 0%; 即当有剩余空间时,项目宽度为其内容的宽度,最终尺寸表现为最小内容宽度。
(4)flex: auto|flex:1 1 auto; 即元素尺寸可以弹性增大,也可以弹性变小,具有弹性,尺寸不足会优先最大化内容。
(5)flex: 1|flex:1 1 0%; 即元素尺寸可以弹性增大,也可以弹性变小,具有十足的弹性,尺寸不足会优先最小化内容。