饥人谷技术博客

Flex布局详解(二)

2020-11-08  本文已影响0人  飞天小猪_pig
2、flex item的属性:

(1)、flex-grow 增长比例(空间过多时)
(2)、flex-shrink 收缩比例(空间不够时)
(3)、flex-basis 默认大小(一般不用)
(4)、flex 上面三个的缩写
(5)、order 顺序(代替双飞翼)
(6)、align-self 自身的对齐方式

(1)、flex-grow
HTML

<div class="parent">
    <div class="child">3sdfasfasa</div>
    <div class="child">4234dfswed</div>
    <div class="child">wewesdsdfds</div>
  </div>

CSS

.parent{
  background:#ddd;
  display:flex;
}
.child{
  height:50px;
  background:white;
  margin:1px;
}
未加flex-grow属性效果图

在上面CSS中加上下面这句,意思就是将多余空间全部分配到第一个item中。数字大于1就是全部分配某个item上。

.child:nth-child(1){
  flex-grow:1
}
将多余空间分配给第一个item

上面CSS中改成下面这句,意思就是将多余空间按照比例2:1:3分配到这三个item中。

.child:nth-child(1){
  flex-grow:2
}
.child:nth-child(2){
  flex-grow:1
}
.child:nth-child(3){
  flex-grow:3
}
多余空间按2:1:3进行分配到item中

(2)、flex-shrink
将增长比例CSS代码改成下面的

.child:nth-child(1){
flex-shrink:2;
}
.child:nth-child(2){
  flex-shrink:1;
}
.child:nth-child(3){
 flex-shrink:5;
}
收缩前
按比例2:1:5收缩后

(3)、flex-basis
CSS

.parent{
  background:#ddd;
  display:flex;
  width:300px;
}
.child{
  height:80px;
  background:white;
  margin:1px;
}
.child:nth-child(1){
  flex-basis:300px;
}
变化前
变化后

flex-basis时默认值大小,我们可以改变它的值优先分配大小。
(4)、flex
CSS

.parent{
  background:#ddd;
  display:flex;
  width:300px; 
}
.child{
  height:80px;
  background:white;
  margin:1px;
}
.child:nth-child(1){
  flex:1 2 300px;   //涨的时候吃一份,缩的时候缩两份,原始大小是100px
}
8.png

flex 是三个flex-grow 、flex-shrink、flex-basis三个缩写形成,三个值按顺序进行编写。
(5)、order 顺序(代替双飞翼)
CSS

.parent{
  background:#ddd;
  display:flex;
  width:300px;
}
.child{
  height:50px;
  width:100px;
  background:white;
  margin:1px;
}
order前效果

在上述CSS加上下面代码(order)

.child:nth-child(1){
 order:3;
}
.child:nth-child(2){
 order:2;
}
.child:nth-child(3){
 order:1;
}
order后效果,item中1和3位置互换了

(6)、align-self 自身的对齐方式
HTML

  <div class="parent">
    <div class="child">
      11111 <br>
      1111 <br>
      111 <br>
      11 <br>
      1 <br>
    </div>
    <div class="child">
      2 <br>
      2 <br>
      2 <br>
    </div>
     <div class="child">3</div>
  </div>

CSS

.parent{
  background:#ddd;
  display:flex;
  width:400px;
  justify-content:space-around;
  align-items:flex-start;
}
.child{
  width:80px;
  background:white;
  margin:1px;
}
1.png
在上述CSS中加上下面这句代码,其中align-self常用的属性值有centerflex-startflex-end
.child:nth-child(3){
  align-self:center;  //属性值改变时如下图所示变化
}
值为center时,第三个item变化
值为flex-start时,第三个item变化
值为flex-end时,第三个item变化
上一篇下一篇

猜你喜欢

热点阅读