display:flex用法

本文介绍了如何使用Flex布局解决页面行排列布局的问题,包括左右居中、响应式布局等,并对比了传统浮动布局的不足之处。

display:flex 意思是弹性布局

 

首先flex的出现是为了解决哪些问题呢?

一、页面行排列布局

像此图左右两个div一排显示

可以用浮动的布局方式

html部分

css部分

这种布局有两个缺点

1.需要一个空div来清除浮动,当然也可以选用其他清除浮动的方法,但此处需要清除浮动才能不影响下面的布局。

2.当.left,.right 的宽度是固定的,浏览器宽度变的过窄时,.right会被挤到下面

用display:flex布局,可以解决这两个缺点

刚吃的html部分不变,css部分

父级元素定义display:flex,子元素宽度用flex来定义,flex:1 是均分父级元素。占的比例相同

1:2分时

同样分为3份时

flex是所占的比例,这样的布局就方便很多。

 

 二、div上下左右居中

我之前写过div上下左右居中的几种方法

其中有一个写了margin:auto auto;这个方法的使用前提就是先把父元素设为display:flex

html部分

css部分 

在未知div宽高时,用这种方法比较方便

<div v-show="imgPanelVisible" style="flex: 1 0 auto;height: 238px;color: #fff;padding: 10px 10px 0px 10px;background-color:#206e3c;isolation: isolate;display: flex;flex-direction: column;text-align: center;font-size: 12px;"> <div style="flex: 1 0 auto;display: flex;flex-direction: row;justify-content: flex-start;"> <div class="num0" style="flex: 0 0 auto;display: flex;flex-direction: column;justify-content: center;width: 28px;border: 1px solid #fff;border-right: 0px;position: relative;clip-path: polygon(60% 0, 100% 0, 100% 100%, 60% 100%, 0% 50%);background-color: #fff;"> <div style="margin-right: -8px;">0</div> </div> <div style="flex: 1;display: flex;flex-direction: column;"> <div style="flex: 1;border: 1px solid #fff;border-right: 0px;border-bottom: 0px;display: flex;align-items: center;justify-content: center;background-color:#d81616;"> 3</div> <div style="flex: 1;border: 1px solid #fff;border-right: 0px;border-bottom: 0px;display: flex;align-items: center;justify-content: center;background-color: #2b2b2b;"> 2</div> <div style="flex: 1;border: 1px solid #fff;border-right: 0px;display: flex;align-items: center;justify-content: center;background-color:#d81616;"> 1</div> </div> <div style="flex: 1;display: flex;flex-direction: column;"> <div style="flex: 1 0 auto;border: 1px solid #fff;border-right: 0px;border-bottom: 0px;display: flex;align-items: center;justify-content: center;background-color: #2b2b2b;"> 6</div> <div style="flex: 1 0 auto;border: 1px solid #fff;border-right: 0px;border-bottom: 0px;display: flex;align-items: center;justify-content: center;background-color:#d81616;"> 5</div> <div style="flex: 1 0 auto;border: 1px solid #fff;border-right: 0px;display: flex;align-items: center;justify-content: center;background-color: #2b2b2b;"> 4</div> </div> <div style="flex: 1;display: flex;flex-direction: column;"> <div style="flex: 1 0 auto;border: 1px solid #fff;border-right: 0px;border-bottom: 0px;display: flex;align-items: center;justify-content: center;background-color:#d81616;"> 9</div> <div style="flex: 1 0 auto;border: 1px solid #fff;border-right: 0px;border-bottom: 0px;display: flex;align-items: center;justify-content: center;background-color: #2b2b2b;"> 8</div> <div style="flex: 1 0 auto;border: 1px solid #fff;border-right: 0px;display: flex;align-items: center;justify-content: center;background-color:#d81616;"> 7</div> </div> <div style="flex: 1;display: flex;flex-direction: column;"> <div style="flex: 1 0 auto;border: 1px solid #fff;border-right: 0px;border-bottom: 0px;display: flex;align-items: center;justify-content: center;background-color:#d81616;"> 12</div> <div style="flex: 1 0 auto;border: 1px solid #fff;border-right: 0px;border-bottom: 0px;display: flex;align-items: center;justify-content: center;background-color: #2b2b2b;"> 11</div> <div style="flex: 1 0 auto;border: 1px solid #fff;border-right: 0px;display: flex;align-items: center;justify-content: center;background-color: #2b2b2b;"> 10</div> </div> <div style="flex: 1;display: flex;flex-direction: column;"> <div style="flex: 1 0 auto;border: 1px solid #fff;border-right: 0px;border-bottom: 0px;display: flex;align-items: center;justify-content: center;background-color: #2b2b2b;"> 15</div> <div style="flex: 1 0 auto;border: 1px solid #fff;border-right: 0px;border-bottom: 0px;display: flex;align-items: center;justify-content: center;background-color:#d81616;"> 14</div> <div style="flex: 1 0 auto;border: 1px solid #fff;border-right: 0px;display: flex;align-items: center;justify-content: center;background-color: #2b2b2b;"> 13</div> </div> <div style="flex: 1;display: flex;flex-direction: column;"> <div style="flex: 1 0 auto;border: 1px solid #fff;border-right: 0px;border-bottom: 0px;display: flex;align-items: center;justify-content: center;background-color:#d81616;"> 18</div> <div style="flex: 1 0 auto;border: 1px solid #fff;border-right: 0px;border-bottom: 0px;display: flex;align-items: center;justify-content: center;background-color: #2b2b2b;"> 17</div> <div style="flex: 1 0 auto;border: 1px solid #fff;border-right: 0px;display: flex;align-items: center;justify-content: center;background-color:#d81616;"> 16</div> </div> <div style="flex: 1;display: flex;flex-direction: column;"> <div style="flex: 1 0 auto;border: 1px solid #fff;border-right: 0px;border-bottom: 0px;display: flex;align-items: center;justify-content: center;background-color:#d81616;"> 21</div> <div style="flex: 1 0 auto;border: 1px solid #fff;border-right: 0px;border-bottom: 0px;display: flex;align-items: center;justify-content: center;background-color: #2b2b2b;"> 20</div> <div style="flex: 1 0 auto;border: 1px solid #fff;border-right: 0px;display: flex;align-items: center;justify-content: center;background-color:#d81616;"> 19</div> </div> <div style="flex: 1;display: flex;flex-direction: column;"> <div style="flex: 1 0 auto;border: 1px solid #fff;border-right: 0px;border-bottom: 0px;display: flex;align-items: center;justify-content: center;background-color: #2b2b2b;"> 24</div> <div style="flex: 1 0 auto;border: 1px solid #fff;border-right: 0px;border-bottom: 0px;display: flex;align-items: center;justify-content: center;background-color:#d81616;"> 23</div> <div style="flex: 1 0 auto;border: 1px solid #fff;border-right: 0px;display: flex;align-items: center;justify-content: center;background-color: #2b2b2b;"> 22</div> </div> <div style="flex: 1;display: flex;flex-direction: column;"> <div style="flex: 1 0 auto;border: 1px solid #fff;border-right: 0px;border-bottom: 0px;display: flex;align-items: center;justify-content: center;background-color:#d81616;"> 27</div> <div style="flex: 1 0 auto;border: 1px solid #fff;border-right: 0px;border-bottom: 0px;display: flex;align-items: center;justify-content: center;background-color: #2b2b2b;"> 26</div> <div style="flex: 1 0 auto;border: 1px solid #fff;border-right: 0px;display: flex;align-items: center;justify-content: center;background-color:#d81616;"> 25</div> </div> <div style="flex: 1;display: flex;flex-direction: column;"> <div style="flex: 1 0 auto;border: 1px solid #fff;border-right: 0px;border-bottom: 0px;display: flex;align-items: center;justify-content: center;background-color:#d81616;"> 30</div> <div style="flex: 1 0 auto;border: 1px solid #fff;border-right: 0px;border-bottom: 0px;display: flex;align-items: center;justify-content: center;background-color: #2b2b2b;"> 29</div> <div style="flex: 1 0 auto;border: 1px solid #fff;border-right: 0px;display: flex;align-items: center;justify-content: center;background-color: #2b2b2b;"> 28</div> </div> <div style="flex: 1;display: flex;flex-direction: column;"> <div style="flex: 1 0 auto;border: 1px solid #fff;border-right: 0px;border-bottom: 0px;display: flex;align-items: center;justify-content: center;background-color: #2b2b2b;"> 33</div> <div style="flex: 1 0 auto;border: 1px solid #fff;border-right: 0px;border-bottom: 0px;display: flex;align-items: center;justify-content: center;background-color:#d81616;"> 32</div> <div style="flex: 1 0 auto;border: 1px solid #fff;border-right: 0px;display: flex;align-items: center;justify-content: center;background-color: #2b2b2b;"> 31</div> </div> <div style="flex: 1;display: flex;flex-direction: column;"> <div style="flex: 1 0 auto;border: 1px solid #fff;border-right: 0px;border-bottom: 0px;display: flex;align-items: center;justify-content: center;background-color:#d81616;"> 36</div> <div style="flex: 1 0 auto;border: 1px solid #fff;border-right: 0px;border-bottom: 0px;display: flex;align-items: center;justify-content: center;background-color: #2b2b2b;"> 35</div> <div style="flex: 1 0 auto;border: 1px solid #fff;border-right: 0px;display: flex;align-items: center;justify-content: center;background-color:#d81616;"> 34</div> </div> <div style="flex: 0 0 23px;display: flex;flex-direction: column;"> <div style="flex: 1 0 auto;border: 1px solid #fff;border-bottom: 0px;display: flex;align-items: center;justify-content: center;"> <span style=" transform: rotate(270deg);transform-origin: center;display: inline-block;">3R</span> </div> <div style="flex: 1 0 auto;border: 1px solid #fff;border-bottom: 0px;display: flex;align-items: center;justify-content: center;"> <span style=" transform: rotate(270deg);transform-origin: center;display: inline-block;">2R</span> </div> <div style="flex: 1 0 auto;border: 1px solid #fff;display: flex;align-items: center;justify-content: center;"> <span style=" transform: rotate(270deg);transform-origin: center;display: inline-block;">1R</span> </div> </div> </div> <div style="flex: 0 0 70px;display: flex;flex-direction: row;"> <div style="flex:0 0 29px;"></div> <div style="flex: 1;border: 1px solid #fff;border-top: 0px;border-right: 0px;display: flex;flex-direction: column;justify-content: center;"> <div style="flex: 1 0 auto;display: flex;flex-direction: row;align-items: center;border-bottom: 1px solid #fff;justify-content: center;"> <div style="border: 1px solid #fff;padding: 5px 25px;">一区</div> </div> <div style="flex: 0 0 30px;display: flex;flex-direction: row;"> <div style="flex: 1;border-right: 1px solid #fff;display: flex;flex-direction: row;align-items: center;justify-content: center;"> 1-18</div> <div style="flex: 1;display: flex;flex-direction: row;align-items: center;justify-content: center;"> 单</div> </div> </div> <div style="flex: 1;border: 1px solid #fff;border-top: 0px;border-right: 0px;display: flex;flex-direction: column;justify-content: center;"> <div style="flex: 1 0 auto;display: flex;flex-direction: row;align-items: center;border-bottom: 1px solid #fff;justify-content: center;"> <div style="border: 1px solid #fff;padding: 5px 25px;">二区</div> </div> <div style="flex: 0 0 30px;display: flex;flex-direction: row;"> <div style="flex: 1;border-right: 1px solid #fff;display: flex;flex-direction: row;align-items: center;justify-content: center;"> <div style="background-color:#d81616;color: #d81616;border: 1px solid #fff;padding: 3px 13px;"> 红</div> </div> <div style="flex: 1;display: flex;flex-direction: row;align-items: center;justify-content: center;"> <div style="background-color: #2b2b2b;color: #2b2b2b;border: 1px solid #fff;padding: 3px 13px;"> 黑</div> </div> </div> </div> <div style="flex: 1;border: 1px solid #fff;border-top: 0px;display: flex;flex-direction: column;justify-content: center;"> <div style="flex: 1 0 auto;display: flex;flex-direction: row;align-items: center;border-bottom: 1px solid #fff;justify-content: center;"> <div style="border: 1px solid #fff;padding: 5px 25px;">三区</div> </div> <div style="flex: 0 0 30px;display: flex;flex-direction: row;"> <div style="flex: 1;border-right: 1px solid #fff;display: flex;flex-direction: row;align-items: center;justify-content: center;"> 双</div> <div style="flex: 1;display: flex;flex-direction: row;align-items: center;justify-content: center;"> 19-36</div> </div> </div> <div style="flex:0 0 22px;"></div> </div> <div style="flex: 0 0 60px;display: flex;flex-direction: row;align-items: center;"> <div style="flex: 0 0 auto;background-image: url(./src/assets/img/group_lp/btn_back.png);width: 35px;height: 35px;margin-right: 3px;"> </div> <div style="flex: 0 0 auto;background-image: url(./src/assets/img/group_lp/btn_clear.png);width: 35px;height: 35px;margin-right: 3px;"> </div> <div style="flex: 0 0 auto;background-image: url(./src/assets/img/group_lp/btn_x2.png);width: 35px;height: 35px;margin-right: 3px;"> </div> <div style="flex: 1 1 auto;"></div> <div style="flex: 0 0 auto;background-image: url(./src/assets/img/group_lp/btn_chip.png);width: 35px;height: 35px;margin-right: 8px;display: flex;flex-direction: row;align-items: center;justify-content: center;"> 10</div> <div style="flex: 0 0 auto;background-image: url(./src/assets/img/group_lp/btn_chip.png);width: 35px;height: 35px;margin-right: 8px;display: flex;flex-direction: row;align-items: center;justify-content: center;"> 50</div> <div style="flex: 0 0 auto;background-image: url(./src/assets/img/group_lp/btn_chip.png);width: 35px;height: 35px;margin-right: 8px;display: flex;flex-direction: row;align-items: center;justify-content: center;"> 100</div> <div style="flex: 0 0 auto;background-image: url(./src/assets/img/group_lp/btn_chip.png);width: 35px;height: 35px;display: flex;flex-direction: row;align-items: center;justify-content: center;"> ?</div> <div style="flex: 1 1 auto;"></div> <div class="iconfont" style="flex: 0 0 auto;width: 45px;height: 35px;display: flex;flex-direction: row;align-items: center;justify-content: center;border: 1px solid white;border-radius:5px;font-size: 23px;"> </div> </div> </div> 请整理这里的css, display: flex;flex-direction: row;align-items: center;justify-content: center;不用整理 其他的整理到<style>
最新发布
10-22
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值