flex布局学习笔记

在非常熟悉的盒子模型下也有不少的缺点,比如不易实现垂直居中,元素的位置常常要依靠浮动定位等才能解决,在响应式方面盒子模型布局也并不是多么得心应手,而flex布局能在一定程度上解决上述问题,下面归纳一下flex布局的一些基本知识要点及注意事项

1.任一容器都能指定flex布局
.content{
	display: flex;
}
.cont{
	display: inline-flex;
}

且在指定flex布局后,其中的子元素的float、clear、vertical-align等都不再生效,子元素的原本块级属性也都会不再生效,注意是子元素,不包含孙子元素以及更下面的元素

这里是第一部分
这里是第二部分 这里是第三部分
4-1
4-2
.content{
	display: flex;
	background: pink;
	height: 400px;
}
.fir{
	background: #C7C7C7;
}
.sec{
	background: #CDB79E;
}
.thi{
	background: #FFE4E1;
}

flex布局学习笔记_第1张图片

如上图所示,块级元素属性消失,但仅限子元素,对孙子元素并不生效

2.基本概念
flex布局学习笔记_第2张图片

1.容器:使用flex布局的称为flex容器

2.项目:容器下的子元素称为项目

3.主轴:默认水平轴为主轴(但可改变方向),主轴开始与结束的位置分别叫main start、main end

4.交叉轴:默认纵向轴为交叉轴,交叉轴开始与结束的位置分别叫cross start、cross end

3.容器的属性

属性名 属性值 效果
flex-direction

row

row-reverse

column

column-reverse

主轴水平,起点左侧

主轴水平,起点右侧

主轴垂直,起点上边

主轴垂直,起点下边

flex-wrap

nowrap

wrap

wrap-reverse

超出不换行

超出换行,第一行在上

超出换行,第一行在下

flex-flow
|| flex-direction与flex-wrap的合并写法
justify-content

flex-start(默认)

flex-end

ecnter

space-between

space-around

左对齐

右对齐

居中

两端对其,项目间隔相等

每个项目两侧间隔相等

align-items

flex-start

flex-end

ecnter

baseline

stretch(默认)

交叉轴起点对齐

交叉轴终点对齐

交叉轴居中

项目第一行文字基线对齐

项目未设置宽高,将占满容器高度



alin-content


4.项目属性

属性名称 属性值 效果
order 整型 根据数值大小对项目排序,越小越靠前,且与代码先后顺序无关
flex-grow 默认0 是否占满剩余空间,以及所占比例,如2是1占比的两倍
flex-shrink 默认1
项目缩小比例
flex-basis | auto 定义项目占据主轴的空间大小(类似宽度width),默认值auto
flex flex-grow flex-shrink flex-basis缩写 默认值0 1 auto
align-self

auto

flex-satrt

flex-end

center

baseline

stretch

对单个项目定义对其方式,默认继承父元素的align-items
注:以上所有内容均来自http://www.runoob.com/w3cnote/flex-grammar.html的整理

你可能感兴趣的:(学习)