细说css3 flex布局之flex项目属性

本文详细介绍了CSS3 flex布局中的项目属性,包括order、flex-grow、flex-shrink、flex-basis、flex和align-self。通过实例展示了这些属性如何控制flex项目在容器中的排列、放大、缩小和对齐方式,帮助开发者更好地理解和应用flex布局。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在前篇博文中已经详细叙述了flex布局中的容器属性,那么现在就来谈谈flex项目属性那些事······
以下6个属性是作用在flex项目上的:

  • order
  • flex-grow
  • flex-shrink
  • flex-basis
  • flex
  • align-self

1.1 order属性
该属性定义项目的排列顺序,数值越小,排列越靠前,默认值为0。用法及效果如下:
html代码

<div class="flex-box">
    <div class="flex-item">item1</div>
    <div class="flex-item">item2</div>
    <div class="flex-item">item3</div>
</div>

css代码

.flex-box{
        background:orange;
        display: flex;     /*定义为flex布局*/
    }
.flex-item{
    margin:10px;
    height:100px;
    width:100px;
    background: purple;
    color:#fff;
}
div:first-child{
    order:0;   /*item1的序号为0*/
}
div:nth-child(2){
    order:-1;
}
div:last-child{
    order:2;
}

效果图:
这里写图片描述
注意,在本例中没有设置flex-direction的属性,那么其值默认是row,你也可以尝试将其设置成column,那么flex项目则会根据order纵向排列。

1.2 flex-grow属性
该属性定义项目的放大比例,默认为0,即不作任何的放大。flex容器下的项目是根据这个值的比例对容器的剩余空间进行瓜分的。用法及效果如下:

.item-class{
    flex-grow:1;
}

效果图:
这里写图片描述
说明:在使用这个属性的时候,一般也最好不要对flex项目设置宽度/高度,否则会影响flex容器的比例分配。

1.3 flex-shrink属性
该属性定义了项目的缩小比例,默认为1,即项目缩小。用法及效果如下:

.item-class{
    flex-shrink:0;
}

效果图:
这里写图片描述
说明:这里flex容器的宽度设置成600px,flex项目的宽度均为300px,margin:10px;在为item1分配完空间后,剩下的空间被后面两个项目按比例缩小分配。

1.4 flex-basis属性
该属性定义了在分配多余空间之前,项目占据的主轴空间(main size)。浏览器根据这个属性,计算主轴(main asix)是否有多余空间。她的默认值为auto,即项目 原本大小。它换可以设置为跟width属性一样的值(100px),即项目占据固定空间(容器宽度不够自动被压缩)。用法及效果如下:

.item-class{
    flex-basis:100px | auto;
}

效果图:
这里写图片描述
说明:该属性的用法就像是使用width(flex-direction:row; 的时候)或heigh(direction为column的时候)属性那样,在容器宽度不够的时候,它会按照flex-shrink属性的默认值压缩项目。

1.5 flex属性
该属性是前三个属性:flex-grow、flex-shrink、flex-basis的简写形式。默认值为0 1 auto,即不放大,自动缩小,后面两个属性值是可选项。该属性有两个快捷键值:auto(0 1 auto),none(0 0 auto)。建议优先使用这个属性,而不是单独写三个分离的属性。

1.6 align-self属性
该属性允许单个项目有与其他项目不一样的对齐方式。可覆盖作用在flex容器上的align-items属性。默认值为auto,表示继承父元素align-items属性,如果没有父元素,则等同stretch。value的取值包括:auto、flex-start、flex-end、end、baseline、stretch。该属性额取值除了auto致亲爱,这个属性作用在项目上的效果跟align-items作用在项目父元素(flex容器)上的效果是一样的,唯一不同的是:align-self仅对使用该属性的项目其效果,align-items是对所有的项目其效果。至于各种属性值所起的效果,大家可以参考前篇博文《细说css3 flex布局值flex容器属性》。

至此,关于css3的flex布局就介绍完了,尝试运用下吧,真的很强大!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值