响应式网页设计-CSS弹性盒子

本文介绍了CSS弹性盒子(Flexbox)布局,通过display: flex定位元素,详细阐述了flex-direction、justify-content、align-items等属性的作用,帮助开发者创建响应式网页。同时,讲解了flex-wrap、flex-shrink、flex-grow、flex-basis等属性,以及order和align-self的用法,为自定义元素排列和对齐提供了更多可能性。

文章目录


CSS 灵活框布局

flex布局元素称为Flex容器(flex container),简称容器。
他的所有子元素自动称为容器成员,称为Flex项目(flex item),简称项目。

display: flex 定位两个盒子

在一个元素的 CSS 中添加 display: flex;,就可以使用其它 flex 属性来构建响应式页面
一些元素中添加display: flex ,会自动布局,更好看

flex-direction排列成行或列

排列 flex 容器中的子元素

  • row:横向排列(主轴水平方向,起点为左端)
  • row-reverse:横向排列(主轴水平方向,起点为右端)
  • column:纵向排列(主轴垂直方向,起点为上方)
  • column-reverse:纵向排列(主轴垂直方向,起点为下方)
justify-content 属性对齐元素

在这里插入图片描述

  • center:lex 子元素在 flex 容器中居中排列
  • flex-start:从 flex 容器的起始位置开始排列项目。 对行来说是把项目移至左边, 对于列是把项目移至顶部。 如未设置justify-content 的值,那么这就是默认值。

在这里插入图片描述

  • flex-end:从 flex 容器的终止位置开始排列项目。

对行来说是把项目移至右边, 对于列是把项目移至底部。
在这里插入图片描述

  • space-between:项目间保留一定间距地沿主轴居中排列。第一个和最后一个项目被放置在容器边沿。
    例如,在行中第一个项目会紧贴着容器左边,最后一个项目会紧贴着容器右边,然后其他项目均匀排布。
    在这里插入图片描述
  • space-around:与space-between相似,但头尾两个项目不会紧贴容器边缘,所有项目之间的空间均匀排布。

在这里插入图片描述

  • space-evenly:头尾两个项目不会紧贴容器边缘,所有项目之间的空间均匀排布。

在这里插入图片描述

space-around space-evenly区别

space-around space-evenly区别

align-items 定义 flex 子元素沿交叉轴的对齐方式

align-items 定义 flex 子元素沿交叉轴的对齐方式

align-items 属性与 justify-content 类似。 justify-content 属性使 flex 子元素沿主轴排列。 行的主轴是水平线,列的主轴是垂直线。
Flex 容器中,与主轴垂直的叫做 cross axis(交叉轴)。 行的交叉轴是垂直的,列的交叉轴是水平的。
CSS 中的 align-items 属性用来定义 flex 子元素沿交叉轴的对齐方式。 对行来说,定义的是元素的上下对齐方式; 对列来说,是定义元素的左右对齐方式。

  • flex-start:从 flex 容器的起始位置开始对齐项目。 对行来说,把项目移至容器顶部; 对列来说,是把项目移至容器左边。

在这里插入图片描述

  • flex-end:从 flex 容器的终止位置开始对齐项目。 对行来说,把项目移至容器底部; 对列来说,把项目移至容器右边。

在这里插入图片描述

  • center:把项目居中放置。 对行来说,垂直居中(项目距离顶部和底部的距离相等); 对列来说,水平居中(项目距离左边和右边的距离相等)。

在这里插入图片描述

  • stretch:拉伸项目,填满 flex 容器。 例如,排成行的项目从容器顶部拉伸到底部。如未设置align-items的值,那么这就是默认值。

在这里插入图片描述
-###### baseline:沿基线对齐。基线是文本相关的概念,可以认为它是字母排列的下端基准线。
在这里插入图片描述

flex-wrap 包裹一行或一列(是否换行/列)

-###### nowrap:默认值,不换行。
在这里插入图片描述

  • wrap:如果排列以行为基准,就将行从上往下排列;如果排列以列为基准,就将列从左往右排列。
    项目太大而无法全部显示在一行中,它们将换行到另一行
    在这里插入图片描述
  • wrap-reverse:如果排列以行为基准,就将行从下往上排列;如果排列以列为基准,就将列从右往左排列。

在这里插入图片描述

flex-shrink 属性定义 flex 子元素的收缩规则

针对flex 子元素

使用之后,如果 flex 容器太小,则子元素会自动缩小。 当容器的宽度小于里面所有子元素的宽度之和时,所有子元素都会自动压缩。
子元素的 flex-shrink 接受数值作为属性值。 数值越大,则该元素与其他元素相比会被压缩得更厉害。 比如,一个项目的 flex-shrink 属性值为 1,另一个项目的 flex-shrink 属性值为 3,那么后者相比前者会受到 3 倍压缩

flex-grow 属性定义 flex 子元素的增长系数

与 flex-shrink 相对,flex-grow 会在容器太大时对子元素作出调整

如果一个项目的 flex-grow 属性值为 1,另一个项目的 flex-grow 属性值为 3,那么值为 3 的一个会较另一个扩大 3 倍

flex-basis 属性设置元素的初始大小

flex-basis 属性定义了在使用 CSS 的 flex-shrink 或 flex-grow 属性对元素进行调整前,元素的初始大小
单位与其他表示尺寸的属性的单位一致(px、em、% 等)。 如果值为 auto,则项目的尺寸随内容调整

flex 短方法属性

flex-grow、flex-shrink 和 flex-basis 属性可以在 flex 中一并设置。

例如,flex: 1 0 10px; 会把项目属性设为 flex-grow: 1;、flex-shrink: 0; 以及 flex-basis: 10px;。

属性的默认设置是 flex: 0 1 auto;。

order 属性重新排列子元素

order 属性告诉 CSS flex 容器里子元素的顺序。 默认情况下,项目排列顺序与源 HTML 文件中顺序相同。 这个属性接受数字作为参数,可以使用负数。

align-self 属性

调整单个子元素自己的对齐方式,而不会影响到全部子元素

align-self 可设置的值与 align-items 的一样,并且它会覆盖 align-items 所设置的值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值