justify-content vs align-items之间的区别?

Ben*_*ino 67 css css3 flexbox

我很难理解有什么区别?从我的研究好像justify-content可以做...... space-betweenspace-around,而align-items能做到...... stretch,baseline,initialinherit

看起来两个属性共享flex-start,flex-endcenter.

使用一个优于另一个是否存在或有优势?还是只是偏好?我觉得他们是相似的,只是做同样的事情,谁知道差异?谢谢!!

Rob*_*bot 158

注意:

如果使用,XY轴/对齐方向可能会发生变化flex-direction:

1. justify-content:水平

对准和间距沿轴线(X轴)

flex-start;将子代水平

flex-end;将子代水平向右

center;将孩子水平居中对齐(惊奇!)

space-between;孩子们分发水平横跨整个宽度均匀

space-around;孩子们分发水平均匀地分布在整个宽度(但与边缘空间

2. align-items:垂直

仅沿辅助轴(Y轴)对齐

flex-start;将孩子垂直对齐顶部

flex-end;将孩子垂直对齐底部

center;儿童对齐垂直居中(惊奇!)

baseline;垂直对齐儿童,使他们的基线对齐(不起作用)

stretch;强迫孩子成为容器的高度(非常适合列)

看到它的实际效果:

http://codepen.io/enxaneta/full/adLPwv/

在我看来:

这些应该被命名为:

flex-x: 左或右或中心或拉伸或间隔或空间

flex-y: 左或右或中心或伸展

但是使用html,你永远不可能拥有美好的东西.决不.

  • @ericso这是一个copout,DanielKobe是正确的:他们可以很容易地将它命名为flex-x,flex-y,甚至flex-primary,flex-secondary以指示轴可以改变的方式.目前的名字对于那些学习来说是荒谬的,不一致的,令人困惑的.它们没有表明它们与彼此或Flexbox有关.像justify和align这样的单词已经被其他css规则污染了,例如vertical-align等.内容和项目之类的单词不匹配.我甚至不能再这样了. (18认同)
  • 不幸的是,为了简化,"justify-content"和`align-items`的效果会根据`flex-direction`而改变.例如,如果`flex-direction`设置为`column`,`justify-content`会影响垂直对齐,反之亦然. (10认同)
  • 为什么他们不能称之为垂直和水平对齐哈哈 (3认同)
  • 这个定义是不正确的。这不是关于水平和垂直。这是关于主轴和交叉轴。justify-content 作用于主轴,align-items 作用于横轴。如果 flex-direction 是水平的,那么这个答案是正确的。如果 flex-direction 是垂直的,那么它不是。 (3认同)
  • flex-box 的 align-items 属性沿横轴对齐 flex 容器内的项目,就像 justify-content 沿主轴对齐一样。(对于默认的 flex-direction: row 横轴对应于垂直,主轴对应于水平。使用 flex-direction: column 这两者分别互换)。 (2认同)
  • 我想我在答案的顶部注释中提到了这一点 (2认同)
  • @pedr看到我的笔记顶部?这种解释使得一个糟糕的命名约定变得平易近人,同时你提到了许多关于主轴和副轴的音符. (2认同)