我真的很困惑。在查找在线资源和文档时,这些属性的大多数文档似乎都引用了Flex-box,而不是grid。而且我不知道Flex-box中等效属性的文档适用于网格。
所以,我已经尝试引用https://css-tricks.com/snippets/css/complete-guide-grid/,它定义如下:
justify-items - 沿着行轴对齐网格项内的内容
justify-content - 此属性沿着行轴对齐网格
justify-self - 沿着行轴对齐网格项内的内容
但我仍然不明白它们之间的区别是什么。所以,我有3个问题需要澄清。
justify-items
属性是否与
网格中的justify-items
属性?或者它们有什么不同?
(换句话说,我可以重用Grid的Flex-box文档)非常感谢任何澄清。
编辑:由于每个人都在不断向我提供Flex-box资源,我问的是css-grid,而不是flex-box。
答案 0 :(得分:32)
<强> 1 强>
正如reiallenramos所提到的那样,“在flexbox中没有实现自我和自我物品属性。这是由于flexbox的一维特性,沿着轴可能有多个项目,因此无法证明单个项目是合理的。要在flexbox中沿主要内联轴对齐项目,请使用justify-content属性。“ - MDN
<强> 2-3 强>
来自W3的屏幕截图非常出色地展示了他们的所作所为以及他们之间的差异。
有关更多信息和示例,我建议您查看:
为了一些灵感:
答案 1 :(得分:0)
好吧,我想我是想通过Michael_B来解决的。我的困惑来自这样一个事实,即有时不同的属性会随机改变网格的布局。
justify-content 允许您将网格放置在其网格容器中。这就是为什么如果网格容器与网格的大小相同,则justify-content属性将不起作用。 (如果使用fr单位,情况总是如此)。这也是它可以具有以下值的原因:空间,空间和空间均匀(除了开始,结束,居中和拉伸),这将分解网格并将网格项放置在网格容器中。这是网格容器的属性。
justify-items 允许您为放置在网格网格项中的内容设置默认位置(网格项是网格中的一个框,如Michael_B&#39;中定义的那样。的帖子)。这是网格容器的属性。
justify-self 允许您覆盖单个单元格中内容的默认位置。这将覆盖由justify-items设置的位置。因此,如果对容器的所有子项使用justify-self,则在网格容器上设置justify-items将不起作用。这是网格项中内容的属性。
注意:如果将网格项本身设为网格,(换句话说,网格项内的内容是网格),则可以使用justify-self属性或者将其置于外部网格项中。内网格的网格容器中的justify-content属性,因为内网格的网格容器是外网格的网格项目内容之一。
正如您所料,所有这些也适用于align- *属性。
如果我有任何错误,请纠正我
答案 2 :(得分:0)
Justify-self 用于将内容在其单元格水平中的位置对齐。
虽然 align-self 用于将内容在其单元格中的位置对齐垂直。
以下是使用justify-self: start;
答案 3 :(得分:-1)
justify-content
用于当网格项的总大小小于网格容器时,沿网格容器的行/内联轴定位整个网格。
justify-items
用于网格容器,用于通过为所有子框设置默认的 justify-self
属性来确定网格项如何沿行展开。
justify-self
用于设置单个网格项如何沿行/内联轴定位自身。网格项默认继承容器上 justify-items
属性的值,因此如果设置了 justify-self
值,它将覆盖继承的 justify-items
值。