Flex布局(基本概念,容器属性,项目属性)

一,基本概念

1.弹性盒子布局

2.2009由W3C提出的布局解决方案

3.兼容性:所有的浏览器都支持

4.注意:

1.所有的元素都可以应用flex布局

2.所有应用flex布局的子元素float,clearvertical-align属性都将失效

1.容器(container):使用了flex布局的元素就是容器
  display:flex;
  display:inline-flex;
2.项目(items):使用了flex元素的子元素
3.主轴(main size):默认水平方向,从左到右,项目默认沿主轴排列;可以通过flex-direction更改
4.交叉轴(cross size):默认垂直方向,从上到下

二、容器属性

1.flex-direction:设置主轴方向

row:默认,水平方向,从左(main start)向右(main end)
row-reverse:水平方向,从右向左
column:垂直方向,从上向下
column-reverse:垂直方向,从下向上

2.flex-wrap:设置当一条主轴放不下所有项目时,多余的项目该如何换行

nowrap:默认,不换行,宽度不够缩小
wrap:换行,多余项目在下面
wrap-reverse:换行,多余项目在上面

3.flex-flowflex-directionflex-wrap简写

flex-flow:direction wrap;

4.justify-content:设置项目在主轴上的对齐方式

flex-start:以main start所在的位置对齐,默认值
flex-end:以main end所在的位置对齐
center:主轴中心点对齐
space-between:两端对齐
space-around:项目在主轴上的两边外边距相同

5.align-items:定义项目在交叉轴上如何对齐 --- 单根轴

flex-start:以cross start所在的位置对齐
flex-end:以cross end所在的位置对齐
center:交叉轴的中心点对齐
stretch:设置项目的大小(height/width)为交叉轴的长度,默认值 -- height/width设置为空或为auto
baseline:以项目中第一行文字的baseline对齐

6.align-content:定义多根轴线时项目在交叉轴上对齐方式 --- 多根轴

flex-start:以cross start所在的位置对齐
flex-end:以cross end所在的位置对齐
center:交叉轴的中心点对齐
space-between:两端对齐
space-around:在交叉轴上的两边外边距相同,等同于align-items中的center效果
stretch:设置项目的大小为平均分配交叉轴的长度

三、项目属性

1.order:设置项目的排列顺序,值越小越靠前,默认为0

2.flex-grow:设置有剩余空间时项目的放大比例,默认为0

3.flex-shrink:设置剩余空间不足时项目的缩小比例,默认为1,即剩余空间不足,项目缩小以适应容器

4.flex-basis:设置项目的主轴空间,默认为auto,即项目的实际大小

5.flex:是flex-grow,flex-shrinkflex-basis的简写,默认值为0 1 auto -- 推荐使用

flex:grow shrink basis;
快捷值:auto:1 1 auto
       none:0 0 auto

6.align-self:设置单个项目在交叉轴上的对齐方式,可以覆盖align-items,值与align-items一样,多了一个auto(表示继承父)

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Flexbox(Flexible Box)是CSS3中引入的一种新的布局模型,其基本思想是为了创建灵活、响应式的网页布局。它的主要目标是在容器内根据可用空间动态调整元素的位置和大小,即使在不同设备或窗口尺寸下也能保持良好的视觉效果。 Flexbox布局的基本思想包括以下几个关键概念: 1. **主轴(main axis)和交叉轴(cross axis)**:默认情况下,主轴是从左到右,交叉轴则是从上到下。可以通过`flex-direction`属性更改这两个方向。 2. **弹性容器(flex container)**:使用`display: flex`或`display: inline-flex`设置的元素将成为弹性容器,管理其内的子元素。 3. **弹性项目(flex items)**:弹性容器中的每个元素都是弹性项目,它们可以沿着主轴和交叉轴进行伸缩。 4. **弹性基础属性**: - `flex-grow`:项目如何扩展以填充可用空间,默认为0,表示不扩展。 - `flex-shrink`:项目在空间不足时如何缩小,默认为1,表示会缩小。 - `flex-basis`:项目的初始大小,可以是一个固定的值或计算值。 5. **对齐方式**:使用`justify-content`, `align-items`, 和 `align-self` 属性控制项目容器中的对齐方式。 6. **顺序和交叉轴对齐**:通过`order`属性控制项目在主轴上的顺序,`align-content` 控制交叉轴的对齐。 了解了这些基本概念后,开发者可以根据需要轻松地调整元素的布局,实现响应式设计。如果你对某个具体的概念感兴趣,或者想深入了解如何在实际项目中应用,请告诉我,我会进一步解释。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小刘03

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值