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

news2024/11/25 22:35:14

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://www.coloradmin.cn/o/743036.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CS231N assignment3 RNN

对作业进行一些形象的解释 首先是def rnn_step_forward: 这里的t时刻其实就是一个句子里面的单词数,为了方便会统一到一个最长长度,对于比这个长度短的部分用null进行填充,并且在方法内部会让Null不进行传播和梯度计算。 我们最…

AIGC的发展史:从模仿到创造,AI的创造性探索

在 AI时代,人工智能不再是简单的机器,而是一个具有无限创造力的创造者。AIGC的诞生是人工智能从模仿到创造的一种进步,也是对人类创造力的一种新探索。 而这种由AI生成的内容究竟是如何发展而来的呢?在本文中,我们将探…

QT检测USB HID设备的拔插

网上的参考代码很多,比如下面这个: QT 检测hid设备拔插打印设备信息_qt hid打印机_研知电子的博客-CSDN博客 但是,参考了很多人的代码,写出来的发现检测不到USB HID设备的拔插。 明明其他人都可以正常使用,那问题应…

java内存区 || 并发

目录 什么是线程? 线程的创建和上下文切换: 线程的入栈和出栈: 堆栈的作用: CPU核心数概念 线程的start状态 就绪队列 操作系统的时间片 线程中代码执行顺序 实际中内存图 什么是线程? 线程的创建和上下文切换…

【android12】给第三方应用APK添加系统签名

一、背景 自己或者客户的第三方apk需要用到很多系统权限,所以要内置到系统目录下,变成系统自带的APP,如果不用系统文件生成的签名安装,会导致APP远程更新失败提示签名错误。 二、环境准备 1.Ubuntu系统(推荐1804版本及…

Invalid name=“org.apache.dubbo.config.ApplicationConfig#0“

上一篇文章是springboot 集成 dubbo: spring boot 集成dubbo_Demonor_的博客-CSDN博客 在集成的时候出现了一些异常,在这里记录一下,并排查出原因 异常信息1: [2m2023-07-11 20:38:39.387[0;39m [32m INFO[0;39m [35m21492[0;…

92.qt qml-日期/日期时间/时间选择器(日历选择器)

截图如下所示: 效果图如下所示: 1.前言 QML日历组件我们之前移植过: 67.qt quick-qml自定义日历组件(支持竖屏和横屏)_qml日历_诺谦的博客-CSDN博客 但是该组件内部代码比较坑的就是全部使用自定义对象,导致性能不行,动画卡顿,并且不好加时间选择,所以本章我们重新学…

Mysql 实现批量插入对已存在数据忽略或更新

Mysql 实现批量插入对已存在数据忽略/更新 文章目录 Mysql 实现批量插入对已存在数据忽略/更新一. 表的准备二. 实现2.1 实现原理2.2 批量插入对已存在数据忽略 一. 表的准备 CREATE TABLE demo (id int NOT NULL AUTO_INCREMENT COMMENT 主键id,name varchar(10) DEFAULT NUL…

重磅IntelliJ IDEA 2023.2 新版本即将发布,拥抱 AI

IntelliJ IDEA 近期连续发布多个EAP版本,官方在对用户体验不断优化的同时,也新增了一些不错的功能,尤其是人工智能助手补充,AI Assistant,相信在后续IDEA使用中,会对开发者工作效率带来不错的提升。 以下是…

基于A*的二维多无人机航线规划

Matlab航迹规划仿真——A*算法_航迹起始算法 matlab_致守的博客-CSDN博客 matlab2016及以上可以运行 astar.m function [] astar(Spoint,Epoint,Matrix,m,n,h1,h2) %%寻路 Matrix(Spoint(1),Spoint(2))0; Matrix(Epoint(1),Epoint(2))inf; GMatrix; FMatrix; openlistMatri…

安全防御 --- DDOS攻击(01)

DOS攻击(deny of service)--- 拒绝式服务攻击 例:2016年10月21日,美国提供动态DNS服务的DynDNS遭到DDOS攻击,攻击导致许多使用DynDNS服务的网站遭遇访问问题,此事件中,黑客人就是运用了DNS洪水…

ceph--RBD的使用

Ceph-RDB 1、RBD架构图 Ceph 可以同时提供对象存储 RADOSGW、块存储 RBD、文件系统存储 Ceph FS,RBD 即 RADOS Block Device 的简称,RBD 块存储是常用的存储类型之一,RBD 块设备类似磁盘 可以被挂载,RBD 块设备具有快照、多副本、克隆和一致…

今天实习第一天,用git

老板问了我是否用过gitee,并且是否用过git,在集成工具中,会git来提交代码。我说没有。 所以,先使用gitee。 01.登录gitee的官网,在此处登录。 02.绑定邮箱,我用的是QQ邮箱。

服务端研发提测模板

test环境分支自测通过 提测邮件标注test环境分支 【xxxxxx需求】服务端研发提测了,快去测试吧!

vue3中的provide

作用:实现祖孙件通信套路:父组件有一个provide选项来提供数据,子组件有一个inject选项来开始使用这些数据具体写法: 祖组件中: <template><div class"lim"><h2>祖组件</h2><child></child>名字:{{ car.name }}<br>价格:…

SpringBoot与Vue前后端分离项目。用Nginx代理。

Nginx代理主要是解决跨域与负载均衡的作用。 我这里用的自己的电脑&#xff0c;用的windows系统&#xff0c;不过配置基本是和Linux一样的。 下载Nginx nginx: download Nginx常用命令&#xff0c;先cd到解文件夹路径&#xff1a; nginx.exe&#xff1a;开启服务。nginx -s…

预训练模型相关整理

1、怎么使用预训练网络&#xff1f; 使用预训练网络有两种方法&#xff1a;特征提取&#xff08;feature extraction&#xff09;和微调模型&#xff08;fine-tuning&#xff09;。 1、特征提取 特征提取是使用之前网络学到的表示来从新样本中提取出有趣的特征。然后将这些特…

深入理解Linux网络——内核是如何发送网络包的

文章目录 一、相关实际问题二、网络包发送过程总览三、网卡启动准备四、数据从用户进程到网卡的详细过程1&#xff09;系统调用实现2&#xff09;传输层处理1. 传输层拷贝2. 传输层发送 3&#xff09;网络层发送处理4&#xff09;邻居子系统5&#xff09;网络设备子系统6&#…

【微信小程序创作之路】- 小程常用页面样式

【微信小程序创作之路】- 小程常用页面样式 第四章 微信小程序用页面样式 文章目录 【微信小程序创作之路】- 小程常用页面样式前言一、总体样式--全局样式and局部样式1.全局样式2.局部样式 二、Flex布局&#x1f349;&#x1f349;&#x1f349;rpx单位 三、样式导入四、常用…

unpkg 与 npm 的基本介绍

目录 定义 特点 原理 使用 npm安装流程 npm install npm update registry 区别 总结 定义 UNPKG是一个基于npm registry 的静态资源 CDN 服务&#xff0c;它可以快速获取和使用任何JavaScript包&#xff0c;无需安装任何软件或包。UNPKG可以从NPM仓库中获取任何包&am…