定义弹性盒子
display: flex;
flex-direction 属性
flex-direction 用来来确定主轴的方向,从而确定基本的项目排列方向。
row默认值。灵活的项目将水平显示,正如一个行一样。
row-reverse:主轴为水平方向,起点在右端;
column:主轴为垂直方向,起点在上沿;
column-reverse:主轴为垂直方向,起点在下沿。
flex-wrap属性
默认情况下,项目都排在一条线上(又称“轴线”)上,并且超出不会自动换行。
flex-wrap 属性定义,如果以条轴线排不下, 如何换行。
nowrap(默认值):不换行(强行挤压,平均分配宽度);
wrap:换行,第一行在上⽅(从上往下一次排列);
wrap-reverse:换行,第一行在下方(从下往上一次排列);
flex-flow flex-flow 属性是 flex-direction 属性和 flex-wrap 属性的简写形式,默认值 为 row nowrap 。.box{ flex-flow: row wrap; }
justify-content 属性
justify-content 属性定义了项目在主轴上的对齐方式。
flex-start(默认值):左对齐
flex-end:右对齐
center: 居中
space-between:两端对齐,项⽬之间的间隔都相等。
space-around:每个项目两侧的间隔相等。所以,项目之间的间隔比项目与边框的间隔大一倍。
align-items 属性
align-items 属性的取值及其含义:(具体对⻬⽅式与交叉轴的方向有关。下面假设交叉轴为从左到右。)
flex-start:交叉轴的起点对齐。
flex-end:交叉轴的终点对齐。
center:交叉轴的中点对齐。
baseline:所有文字相对于同一基线对齐
align-content 属性
align-content 属性定义了多根轴线的对齐方式。如果项目只有一根轴线,该属性不起作用。
align-content 属性的取值及其含义:
flex-start:与交叉轴的起点对齐。
flex-end:与交叉轴的终点对齐。
center:与交叉轴的中点对齐。
space-between:与交叉轴两端对齐,轴线之间的间隔平均分布。
space-around:每根轴线两侧的间隔都相等。所以,轴线之间的间隔比轴线与边框的间隔大一倍。
stretch(默认值):轴线占满整个交叉轴。
差不多了,下面我们来具体的看下怎么使用这些属性
首先看下几张经常会遇到的设计图
很多APP商城都采用这样的布局
。。。
像这种布局一般用浮动的话写起来会很麻烦 还要解决各种兼容性的bug
先实现第一张图的效果
css和html
效果图
这样就实现了一个简单的京东导航,具体像素等在细写,可以加margin和padding;但是一般情况会加一个怪异和模型
box-sizing:border-box;
其实道理都是一样的,不要麻烦套的盒子多,盒子套的越多分的约清晰,而且后期维护还好修改,不用做太多的改动
本期就到这里;
网友评论