弹性盒模型

声明弹性盒模型的几种方式:1.display:flex;块级弹性盒子2.display:inline-flex行级弹性盒子

弹性盒子里的元素是弹性元素,默认水平方向排列flex-direction:row;


改变排列方向:flex-direction:column

,控制元素溢出盒子宽度时,自动换行.my{

display: flex;

width:100px;

height: 80px;

border: 1px solid red;

flex-direction: row;

flex-wrap:wrap;

}

.my *{

padding: 10px;

width: 30px;

height: 20px;

box-sizing: border-box;

border: 1px solid red;

}


主轴与交叉轴

若flex-direction:row;主轴则是水平的,从左到右,交叉轴则是与水平轴垂直的那条轴;若flex-direction:column;,主轴则是垂直的,从上到下,交叉轴则是与垂直的轴垂直,是水平的;

主轴中元素的排列:justify-content:center;居中排列flex-start;flex-end;主轴结束,从右到左

justify-content: space-evenly;完全平均分配,这里指

justify-content: space-around;

justify-content: space-between;

align-items: flex-end;交叉轴结束

align-items: center;交叉轴居中

align-items: stretch;拉伸适应交叉轴高度

交叉轴和主轴结合使用

align-items: center;

justify-content: center;


单个元素设置排列方式

.my div:nth-child(1){

align-self:center;

}

元素可用空间分配(当空间多的时候):将剩余空间平均分配到每个元素身上:flex:1;

.my div:nth-child(1){

flex-grow:2;

}

.my div:nth-child(2){

flex-grow: 1;

}

.my div:nth-child(3){

flex-grow: 0;

}


元素动态缩小(当空间不够用的时候):父元素400px,子元素3个每个300px,这时父元素不够分配,此时自动等比例缩小

若想这些元素,不等比例缩小,使用flex-shrink: 0;(缩小比例)

.my div:nth-child(2){

flex-shrink: 3;(缩小三倍)

}

flex-basis是元素在主轴上占的空间,flex-basis: 10px;相当于width:10px
flex是flex-grow、flex-shrink 、flex-basis缩写组合。

平均分配剩余空间,并不进行尺寸缩小,基础尺寸为200px。

flex:0 0 100px;(不分配剩余空间,不进行尺寸的等比例缩小,基础尺寸100px)

flex:0 1 100px;(进行缩放)

控制弹性元素的排序

order:数字越大越靠后,越小越靠前

.my div:nth-child(1){

order:2;

}

.my div:nth-child(4){

order:-11;

}


margin-right:auto的妙用

以导航栏为例,当导航栏设置了width;logo和ul分布在左边,按钮分布在右边,这是之间的空隙自动留出,使用margin-right:auto即可,就能实现logo和ul在左边分布,按钮在靠右边的位置分布。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容