简单的复习下与 CSS Flex 布局相关的几个关键属性

news/2024/9/19 15:32:35

2d36669934debded1355c5d507231460.jpeg

揭开align-content、justify-content、align-items和justify-items的神秘面纱,解释它们各自的功能以及在不同的情境下如何使用。

6a0374a59bef5117dacb8caea670bb8f.jpeg

在过去几年中,由于弹性盒子和网格布局的演变,CSS布局设计的艺术发生了重大变化。而这一变革的核心,正是四个关键属性:align-content、justify-content、align-items和justify-items。这些属性是强大的工具,一旦掌握,可以帮助开发人员创建更复杂、响应式和适应性强的网页布局。

然而,这些属性往往会让开发人员感到困惑,因为它们的名称相似且职责有所重叠。本文旨在揭开这些属性的神秘面纱,解释它们各自的功能以及在不同的情境下如何使用。

对齐内容(align-content)和对齐主轴(justify-content)

对齐内容(align-content)和对齐主轴(justify-content)是CSS属性,用于在弹性盒子或网格容器中控制行的对齐方式,当有多余空间时。它们分别帮助管理交叉轴和主轴上的空间分布。

Align-content

对齐内容(align-content)属性用于在弹性盒子或网格容器中,当在交叉轴上有多余空间时,对齐行。对于行来说,交叉轴是垂直的,而对于列来说,交叉轴是水平的。它只适用于存在多行弹性盒子项或网格轨道时。

它可以接受的值包括:

  • stretch(默认值):行被拉伸以占据剩余空间。

  • flex-start / start:行靠近弹性盒子的起始位置。

  • flex-end / end:行靠近弹性盒子的末尾位置。

  • center:行靠近弹性盒子的中心位置。

  • space-between:行均匀分布,第一行位于容器的起始位置,最后一行位于容器的末尾位置。

  • space-around:行均匀分布,两侧有相等的空间。

  • space-evenly:行均匀分布,包括行与行之间和两侧的空间均相等。

justify-content

对齐主轴(justify-content)属性用于沿着当前行的主轴对齐弹性盒子或网格容器的项。对于行来说,主轴是水平的,对于列来说,主轴是垂直的。

它接受与对齐内容(align-content)相同的值,但作用于主轴上。

对齐项(align-items)和对齐项目(justify-items)

对齐项(align-items)和对齐项目(justify-items)属性允许您在网格或弹性容器中对齐各个项。它们非常有助于处理项目在交叉轴和主轴上的对齐方式。

对齐项(align-items)

对齐项(align-items)属性设置了弹性盒子或网格容器中所有项在交叉轴上的默认对齐方式。例如,如果弹性盒子的主轴方向是行(默认值),那么交叉轴就是垂直的,这个属性将决定子项在垂直方向上的对齐方式。

它可以接受的值包括:

  • stretch(默认值):项被拉伸以填充容器。

  • flex-start / start:项对齐到容器的起始位置。

  • flex-end / end:项对齐到容器的末尾位置。

  •  center:项对齐到容器的中心位置。 baseline:项沿着容器的基线对齐显示。

对齐项目(justify-items)

对齐项目(justify-items)属性设置了网格容器中所有项在主轴上的默认对齐方式(不适用于弹性盒子容器)。

它接受与对齐项(align-items)相同的值,但作用于主轴上。

总结:

3e441003764945e9a384162c2676166c.jpeg

理解这四个属性——align-content、justify-content、align-items和justify-items——对于希望创建稳健且响应式布局的开发人员来说至关重要。有了这些属性在CSS工具包中,您可以精确而灵活地处理元素的对齐方式。

请记住,这些属性的主要区别在于它们作用的轴线,align-*处理交叉轴,而justify-*处理主轴。此外,请记住-items属性管理单个项,而-content属性则处理整行。

虽然这些属性初看可能令人望而却步,但在不同的场景中进行实验将使您能够迅速掌握它们。祝您编码愉快!

请继续关注更多关于CSS属性和其他开发主题的深入探讨。

由于文章内容篇幅有限,今天的内容就分享到这里,文章结尾,我想提醒您,文章的创作不易,如果您喜欢我的分享,请别忘了点赞和转发,让更多有需要的人看到。同时,如果您想获取更多前端技术的知识,欢迎关注我,您的支持将是我分享最大的动力。我会持续输出更多内容,敬请期待。


http://lihuaxi.xjx100.cn/news/1334455.html

相关文章

【洛谷】P3954 [NOIP2017 普及组] 成绩

[NOIP2017 普及组] 成绩 题目背景 NOIP2017 普及组 T1 题目描述 牛牛最近学习了 C 入门课程,这门课程的总成绩计算方法是: 总成绩作业成绩$ \times 20% 小测成绩 小测成绩 小测成绩30% 期末考试成绩 期末考试成绩 期末考试成绩 \times 50%$ 牛牛想…

13 个最佳免费 PDF 编辑器清单

您正在寻找一款真正免费的 PDF 编辑器,不仅可以编辑和添加文本,还可以更改图像、添加您自己的图形、签署您的名字、填写表格等等?您来对地方了:我研究了这些类型的应用程序,以得出您正在寻找的内容的列表。 其中一些是…

抖音短视频seo源码开发部署-技术分享(四)

一、 抖音短视频seo源码开发流程 抖音短视频SEO源码开发流程如下: 1.分析需求:首先需要明确你的SEO目标。分析竞争对手,了解抖音短视频平台的规则,选定目标关键词和主题。 2.编写代码:根据需求编写代码,…

[RocketMQ] Broker 消息刷盘服务源码解析 (十二)

同步刷盘: 在消息真正持久化至磁盘后RocketMQ的Broker端才会真正返回给Producer端一个成功的ACK响应。异常刷盘: 能够充分利用OS的PageCache的优势, 只要消息写入PageCache即可将成功的ACK返回给Producer端。消息刷盘采用后台异步线程提交的方式进行, 降低了读写延迟和提高了MQ…

实验室服务器 环境配置记录

前言 本篇文章为本人自己(Toniht)在实验室服务器上配置环境的一些记录,我也是个半吊子,很多步骤都不知其所以然,主打一个能用就行。主要目的是方便后续遇见问题及时定位,或者后续再次需要时不用上网到处查找。次要目的是希望能帮…

golang for range循环坑

比较两段代码: package mainimport "fmt"func main() {a : []int{1, 2, 3, 4, 5, 6, 7, 8, 9}for len(a) > 0 {a a[1:]fmt.Println(a)} }输出 [2 3 4 5 6 7 8 9] [3 4 5 6 7 8 9] [4 5 6 7 8 9] [5 6 7 8 9] [6 7 8 9] [7 8 9] [8 9] [9] []这是符合…

计算机实习学习总结报告10篇

计算机实习学习总结报告篇1 一、实习单位: 来到实习单位后主要是在门市从事产品的销售和商家间渠道工作。在工作的过程中了解计算机相关行业的发展现状及趋势;熟悉计算机硬件组装、计算机系统及软件安装、局域网搭建;掌握典型计算机网络工程的安装与维护;了解网站…

Jira Tempo :如何创建 Dynamic Dropdown 类型的 Work Attributes?

官方示例: Jira Tempo 可以创建以下类型的工作属性(Work Attributes): 其中,Dynamic Dropdown 支持外部接口,可以自己提供一个接口连接,如下: 官方示例中,给了一个 php 版本的示例…