首页 > 其他分享 >为什么 CSS flex 布局中没有 `justify-items` 和 `justify-self`?

为什么 CSS flex 布局中没有 `justify-items` 和 `justify-self`?

时间:2023-10-11 11:46:51浏览次数:43  
标签:flex items self item CSS justify

为什么 CSS flex 布局中没有 justify-itemsjustify-self

为什么在 CSS flex 布局中存在 align-itemsalign-self,却没有 justify-itemsjustify-self 呢?要解答这个问题,首先需要理解主轴(main axis)和交叉轴(cross axis)之间的差异。

1. 主轴和交叉轴的区别

在没有折行的情况下,一个 flex 容器(flex container)只有一个主轴,但却有 n 个交叉轴(n 代表 flex item的数量)。每个 flex item 都拥有自己独立的交叉轴。

一个 flex item 在主轴上的位置会影响其他 flex item,因为它们共享相同的主轴,而交叉轴却不会引发这种相互影响。

2. CSS 属性的命名规则

2.1 align-*justify-*

在 CSS flex 布局中,属性名称中的 align-* 表示这是应用于主轴上的规则,而 justify-* 表示这是应用于交叉轴上的规则。

2.2 *-items*-content*-self

*-self 表示每个 flex item 都拥有独立的轴,它们在轴上的位置不会影响其他 flex item。我们可以针对单个 item 设置它的位置。

*-items*-self 在本质上相似,只不过前者是批量设置,而后者是针对单个 item 的设置。可以看作是一个语法糖。

*-content 表示多个 flex item 共享一个轴,一个 flex item 在轴上的位置会影响其他 flex item。

3. 总结

因此,在 flex 布局中,我们不能使用 justify-items,因为多个元素共享一个轴,它们属于同一组,这会导致相互干扰。想象一下:假如我们指定了justify-items: flex-end,最终只会有一个元素抢到这个位置。

同样的道理,我们也不能使用 justify-self,因为各元素之间可能会竞争位置导致冲突。但是,我们可以采用其他解决方案,例如使用 order 属性来对它们进行更为精细的排序(和flex-startflex-endcenter 相比)。

标签:flex,items,self,item,CSS,justify
From: https://www.cnblogs.com/forzhaokang/p/17756552.html

相关文章

  • flex-basis主轴基准线
    <!DOCTYPEhtml><html> <head> <metacharset="utf-8"> <title></title> <style> html, body{ margin:0; padding:0; } .outer{ width:calc(100vw-200px); height:calc(10......
  • mlpack is an intuitive, fast, and flexible header-only C++ machine learning libr
    https://github.com/mlpack/mlpack README.md afast,header-onlymachinelearninglibraryHome | Documentation | Community | Help | IRCChat   Download: currentstableversion(4.2.1)mlpack isanintuitive,fast,andflexibleheader-......
  • Mybatis-Flex核心功能之@Table
    1、能干啥?@Table主要是用于给Entity实体类添加标识,用于描述实体类和数据库表的关系,以及对实体类进行的一些功能辅助。例如:数据库有一张tb_member的会员表这时候我们就可以使用@Table去绑定对应的实体和表的对应关系2、怎么玩?先看看@Table注解内部结构public@in......
  • Flex布局【实战】
    实战:使用Flex布局构建如下界面分析:竖向:使用flex布局将页面分为三部分,即头部、主体和底部。其中头部和底部需要固定高度,其余的高度分配给主体部分(使用flex-direction=column;和flex-grow:1;)主体部分:使用flex布局排列多个卡片,这里可以使用uniapp提供的scroll-view......
  • flex 布局之左右边距对齐,换行左对齐2
    <!DOCTYPEhtml><html> <head> <metacharset="utf-8"> <title></title> </head> <styletype="text/css"> li{ list-style:none; } .List{ width:100%; box-sizing:borde......
  • flex布局笔记
    一、认识flex布局认识flexbox:弹性盒子是一种用于按行或按列布局元素的一维布局方法;元素可以膨胀一填充额外的空间,收缩一适应更小的空间;通常我们使用flexbox来进行布局的方案之为flex布局(flexlayout);flex布局的重要概念开启了flex布局的元素叫flexcontainerflexcontai......
  • 别再用 float 布局了,flex 才是未来!
    大家好,我是树哥!前面一篇文章整体介绍了CSS的布局知识,其中说到float布局是CSS不断完善的副产物。而在2023年的今天,flex这种布局方式才是未来!那么今天我们就来学习下flex弹性布局。什么是Flex布局?在经过了长达10年的发展之后,CSS3才终于迎来了一个简单好用的布局......
  • 弗恩基 Flex-N-Gate EDI 需求分析
    弗恩基Flex-N-Gate是一家总部位于美国伊利诺伊州的汽车零部件制造公司。该公司成立于1956年,由亿万富翁企业家ShahidKhan创办。Flex-N-Gate主要专注于设计、制造和供应汽车外部和内部零部件,包括前后保险杠系统、灯具、车门零件、悬挂系统等。该公司在汽车零部件制造行业内享有......
  • 关于 SAP UI5 Page Map 里 Flex Enabled 标志位
    我们在本地使用VisualStudioCode开发SAPUI5应用,通过PageMap打开SAPUI5应用,能编辑一个叫做FlexEnabled的标志位,true代表启用UIAdaptation,false代表禁用UIAdaptation.FlexEnabled和UIAdaptation是SAPUI5开发中的两个关键概念,它们为开发者提供了强大......
  • 大屏自适应/适配方案【详解】(echarts自适配、rem、flexible.js、vscode中px2rem插件自
    原文链接:https://blog.csdn.net/weixin_41192489/article/details/120004315大屏自适应的核心目标有:字体大小随屏幕尺寸自适应变化详见下文自动撑满全屏设置如下.bg{background:url("~@/assets/images/主背景.png");position:fixed;top:0;left:0;wi......