关于display:flex用法

今天看到别人一个wap页面用到了display:flex属性,平时也没怎么见到过,于是就百度学习了一下,发现这个属性的确很好用,该组合属性可以让父级内部的的空间按照设定比例分配给子级元素。先来说说他的用法。

css:

.box{width:600px;display: flex;flex-flow:column;//此属性设置将内部空间是分配水平上的空间还是竖直上空间}

.div1{flex:1;}

.div2{flex:3;}

.div3{width:200px;}

html:

<div class="box">
<div class="div1">左边</div>
<div class="div2">中间部分</div>
<div class="div3">右边</div>
</div>

这个属性得到的结果就是,div1的宽度:将box可用空间(600-200)按照1:3分成4等分,div1占1分,div2占三分得到以下结果


这样这3个div就神奇的划分成1:3:300px的宽度了,连float都不需要,而且这个比例是自适应的,是不是很神奇?,如果让我用别的方法来完成这种空间分配的需求,恐怕我只能用js来实现了,并且加上自适应还比较麻烦,个人感觉比bootstrap的栅格还好用哈哈,如果需要上下分匹配空间,设置flex-flow:row就行了,前提是box设置了高度。目前这个还是有兼容问题,不过移动端可以放心使用

详细解释http://www.360doc.com/content/14/0811/01/2633_400926000.shtml

<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
### CSS中 `display: flex` 和 `display: block` 的区别及用法 在CSS中,`display` 属性用于定义元素的布局方式。以下是关于 `display: flex` 和 `display: block` 的详细区别及用法。 #### 1. `display: block` - 当一个元素设置为 `display: block` 时,它会占据其父容器的整个宽度,并且每个块级元素会独占一行[^2]。 - 默认情况下,段落 `<p>`、标题 `<h1>` 到 `<h6>`、以及 `<div>` 等标签都是块级元素。 - 块级元素可以设置宽度和高度,且默认宽度为父容器的100%。 ```css .block-element { display: block; width: 50%; /* 可以设置宽度 */ height: 100px; /* 可以设置高度 */ background-color: lightblue; } ``` #### 2. `display: flex` - 当一个容器设置为 `display: flex` 时,它的子元素会按照弹性盒子模型(Flexbox)进行布局[^3]。 - Flexbox 提供了一种更高效的方式来对齐和分布容器中的项目,即使它们的大小未知或动态变化。 - 主要属性包括 `flex-direction`(定义主轴方向)、`justify-content`(定义主轴上的对齐方式)和 `align-items`(定义交叉轴上的对齐方式)。 ```css .flex-container { display: flex; flex-direction: row; /* 定义主轴方向 */ justify-content: space-between; /* 主轴上的对齐方式 */ align-items: center; /* 交叉轴上的对齐方式 */ } .flex-item { width: 100px; height: 100px; background-color: lightcoral; margin: 5px; } ``` #### 区别总结 - **布局模式**:`display: block` 是传统的块级布局模式,而 `display: flex` 是一种现代的弹性布局模式。 - **空间占用**:块级元素独占一行,而 Flexbox 容器内的子元素可以根据需要分布在一行或多行。 - **灵活性**:Flexbox 提供了更多的控制选项,例如对齐方式、顺序调整等,而块级布局则较为简单和静态。 #### 使用场景 - **`display: block`**:适用于简单的文档流布局,例如文章段落、标题等。 - **`display: flex`**:适用于复杂的布局需求,例如导航栏、卡片布局、表单排列等[^4]。 ```html <!-- 示例:block --> <div class="block-element">这是一个块级元素</div> <!-- 示例:flex --> <div class="flex-container"> <div class="flex-item">Item 1</div> <div class="flex-item">Item 2</div> <div class="flex-item">Item 3</div> </div> ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值