flex布局align-items和align-content的区别,flex-direction容器属性

本文详细解析了CSS flex布局中align-items和align-content属性的区别,强调align-items作用于单个子元素,而align-content则作用于多行子元素。内容包括两者在不同场景下的应用效果,以及flex-direction属性如何定义主轴方向。通过多个实例演示,展示了在不同设定下,如容器高度固定、子元素多行等条件下的对齐方式,帮助读者深入理解这两者的工作原理。
摘要由CSDN通过智能技术生成

目录

flex布局align-items和align-content的区别

flex-direction容器属性


 

flex布局align-items和align-content的区别

 

1、align-items是针对每一个子项起作用,它的基本单位是每一个子项,在所有情况下都有效果

2、align-content属性是将flex子项作为一个整体起作用,它的基本单位是子项构成的行

只在两种情况下有效果:

①子项多行且flex容器高度固定

②子项单行,flex容器高度固定且设置了flex-wrap:wrap


b991c31fc04fb7c331ab33c92ebd66b8.png

 

主轴为 flex-deriction定义的方向,默认为row

交叉轴跟主轴垂直即为column,反之它们互调

justfiy-content:应用于flex容器,设置flex子项(flex items)在主轴上的对齐方式。

不同取值的效果如下所示:

 

e072d51516d1d4669498dd849f123e06.png

 

align-items应用于flex容器,设置flex子项在每个flex行的交叉轴上的默认对齐方式。

不同取值的效果如下所示:

 

1a2ddf00e391e54ecb259cdddf55ab16.png

 

align-content只适用多行的flex容器(子项不止一行时该属性才有效果),它的作用是当flex容器在交叉轴上有多余的空间时,将子项作为一个整体(属性值为:flex-start、flex-end、center时)进行对齐。不同取值的效果如下所示:

a44d0103439587d66263edd1e39b36a1.png

 

 

第2部分:实例演示

例1效果

 

8f1837e5d336d3da733b968f64cbd39f.png

 

Html+css代码

<style type="text/css">

.flex { width: 500px; margin: 10px; text-align: center; border: 2px solid #9a9a9a; display: flex; }

.flex div { width: 100px; margin: 5px; }

.flex div.eg1 { background-color: #ffb685; height: 130px; }

.flex div.eg2 { background-color: #fff7b1; height: 50px; width: 120px; }

.flex div.eg3 { background-color: #b1ffc8; height: 100px; }

.flex div.eg4 { background-color: #b1ccff; height: 60px; }

</style>

<div class="flex">

<div class="eg1">1</div>

<div class="eg2">2</div>

<div class="eg3">3</div>

<div class="eg4">4</div>

</div>

 

 

 

结论1

在flex布局中,有默认属性:align-items: normal;和 align-content: normal;

效果为顶部对齐。

例2效果

设置 align-items : center

 

bee8c3b0e83ca24053b8b3282dd1f60f.png

 

Html+css代码

<style type="text/css">

.flex { width: 500px; margin: 10px; text-align: center; border: 2px solid red; display: flex;align-items: center; }

.flex div { width: 100px; margin: 5px; font-weight:700;font-size:20px;text-align:center; }

.flex div.eg1 { background-color: #ffb685; height: 130px; }

.flex div.eg2 { background-color: #fff7b1; height: 50px; width: 120px; }

.flex div.eg3 { background-color: #b1ffc8; height: 100px; }

.flex div.eg4 { background-color: #b1ccff; height: 60px; }

</style>

<div class="flex">

<div class="eg1">1</div>

<div class="eg2">2</div>

<div class="eg3">3</div>

<div class="eg4">4</div>

</div>

结论2

 

 

容器的高度为最高子项的高度,同一行的所有子项全都在交叉轴上居中对齐,即子项的高度中线与flex交叉轴中线重合。

例3效果

设置 align-content: center

 

0c99b56fecf304ed936ed3e7c350bb40.png

Html+css代码

<style type="text/css">

.flex { width: 500px; margin: 10px; text-align: center; border: 2px solid red; display: 
   flex;align-content: center; }
.flex div { width: 100px; margin: 5px; font-w
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值