Flex布局详解

flex 默认值: flex: 0 1 auto ;//flex-grow flex-shrink flex-basis

1.Flex模型

flex-container | flex-item | main axis | cross axis

Flex模型.jpg

2.flex-container-水平显示/行内样式

js文件

<div className="container">
   <div className="item item-1"><span>1</span></div>
   <div className="item item-2"><span>2</span></div>
   <div className="item item-3"><span>3</span></div>
   <div className="item item-4"><span>4</span></div>
   <div className="item item-5"><span>5 </span></div>
</div>

less文件

#body {
    padding: 0;
    margin: 0;   
}
.container {
    background-color: #6435c9;
    padding: 10px;
}
.item {
    box-shadow: 0 1px 1px rgba(0,0,0,0.3);
    background-color: #ffffff;
    color: #cccccc;
    padding: 30px;
    display: block;
    text-align: center;
}
.item span {
    font-size: 50px;
}

///Flex部分
 .container {
     //display: flex;//水平显示 block
     display: inline-flex;//行内样式-span
 }

效果图


效果图.jpg

3.flex-direction-控制项目的排列顺序在主轴(X)的方向

控制项目的排列顺序在主轴(X)的一个方向main axis
row 水平方向
colunm 竖直方向
less文件

///Flex部分
 .container {
     display: flex;//水平显示 block
     flex-direction: row;//水平排列
     flex-direction: row-reverse;//水平倒置排列(从右往左)
     flex-direction: column;//竖直排列
     flex-direction: column-reverse;//竖直倒置排列(从下往上)
 }

效果图


flex-direction.jpg

4.flex-wrap-控制项目是否在多行显示

///Flex部分
 .container {
     display: flex;//水平显示 block
     flex-wrap: nowrap;//不换行
     flex-wrap: wrap;//换行(根据容器的宽度自适应显示)
     flex-wrap: wrap-reverse;//换行倒置(根据容器的宽度自适应显示)
 }

效果图


flex-wrap.jpg

5.flex-flow-flex-direction属性和flex-wrap属性的简写

flex-direction属性和flex-wrap属性的简写形式,默认flex-flow:row nowrap;

///Flex部分
 .container {
     display: flex;//水平显示 block
     flex-flow: row-reverse wrap;
 }

效果图


flex-flow.jpg

6.justify-content-调整项目在水平方向的位置和间隔

///Flex部分
 .container {
     display: flex;//水平显示 block
     justify-content: flex-start;//默认值
     justify-content: flex-end;//靠右排列,不倒置
     justify-content: center;//居中显示
     justify-content: space-between;//添加间隔(第一个项目和最后一个项目之间不会有间隔)
     justify-content: space-around;//在项目的周围左边和右边添加一些间隔
 }

效果图


justify-content.jpg

7.align-items-调整项目在垂直方向的位置

///Flex部分
 .container {
     display: flex;//水平显示 block
     justify-content: space-around;//在项目的周围左边和右边添加一些间隔
     height: 300px;
     align-items: stretch;//默认值
     align-items: flex-start;//容器垂直方向的顶部 
     align-items: flex-end;//容器垂直方向的底部 
     align-items: center;//居中
     align-items: baseline;//基线对齐

 }
 .item-1 {
     padding-top: 50px;
 }
 .item-3 {
    padding-top: 70px;
}

效果图


align-items.jpg

8.align-content-多行显示时:调整容器在垂直方向的对其方式

///Flex部分
 .container {
     display: flex;//水平显示 block
     flex-wrap: wrap;
     height: 300px;
     align-content: flex-start;
     align-content: flex-end;
     align-content: space-between;//上下中间内容添加间隔
     align-content: space-around;//上下添加间隔
 }

效果图


align-content.jpg

9.order-改变项目在flex容器中的顺序

less文件

///Flex部分
 .container {
     display: flex;//水平显示 block
     height: 300px;
     justify-content: space-around;
     align-items: flex-start;
     
 }
 .item-1 {
     order: 1;//把这个项目排列到最后
 }
 .item-5 {
     order: -1;//把5排列到最前面
 }

效果图


order.jpg

10.flex-item-利用容器剩下水平方向的位置

flex-grow-利用容器剩下水平方向的位置

///Flex部分
 .container {
     display: flex;//水平显示 block
     height: 300px;
     align-items: flex-start;
     
 }
 .item {
     flex-grow: 1;//设置宽度相等,自适应屏幕
 }
 .item-3 {
     flex-grow: 3;//单独设置宽度比其他大,类似权重
 }

效果图


flex-grow.jpg

flex-basis 设置每个项目的宽度,会随宽度的缩小而缩小

flex-shrink: 0;//设置不随宽度的缩小而缩小

///Flex部分
 .container {
     display: flex;//水平显示 block
     height: 300px;
     align-items: flex-start;
     
 }
 .item {
     flex-basis: auto;//默认值
     flex-basis: 600px;//设置每个项目的宽度,会随宽度的缩小而缩小\
     
 }
 .item-3 {
     flex-shrink: 0;//设置不随宽度的缩小而缩小
     flex-shrink: 3;//设置值越大,宽度越小
 }

效果图

flex-shrink.jpg

11.align-self-单独设置某一个项目的对齐方式

///Flex部分
 .container {
     display: flex;//水平显示 block
     height: 300px;
     justify-content: space-around;
     align-items: flex-start;
 }
 .item-1 {
     align-self: auto;//默认值
     align-self: flex-end;//靠最底部显示
 }
 .item-2 {
    align-self: center;//居中显示
}
.item-3 {
    align-self: stretch;
}
.item-4 {
    align-self: center;
}
.item-5 {
    align-self: flex-end;
}

效果图:


align-self.jpg

Flex 案例之推广大使首页效果图

Flex布局案例.gif
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一、Flex布局是什么? Flex是Flexible Box的缩写,意为”弹性布局”,用来为盒状模型提供最大的灵活...
    穿越人海遇见你阅读 5,334评论 0 3
  • 前言:之前我写过的一篇博客介绍CSS常用的几种布局方式,PC端最常见的就是浮动布局和flex布局,而在移动端,由于...
    EnochQin阅读 736评论 0 7
  • 网页布局(layout)是CSS的一个重点应用。 2009年,W3C提出了一种新的方案—-Flex布局,可以简便、...
    一大碗面丶阅读 560评论 0 0
  • 弹性盒子是 CSS3 的一种新的布局模式。CSS3 弹性盒( Flexible Box 或 flexbox),是一...
    hunter97阅读 2,456评论 0 2
  • H5移动端知识点总结 阅读目录 移动开发基本知识点 calc基本用法 box-sizing的理解及使用 理解dis...
    Mx勇阅读 4,879评论 0 26

友情链接更多精彩内容