🎗

flex布局

flex-direction 默认 row, 在 RN 中默认是 column, 可以理解, 因为手机设备以 Portrait 为正.

flex: displays an element as a block-level flex container

<span style="display: flex">
  <div></div>
  ...
</span>

此时 spanblock-level, 默认占据所有宽度.

inline-flex: displays an element as an inline-level flex container

<div style="display: inline-flex">
  <div></div>
  ...
</div>

此时 divinline-level, 默认没有宽度.

flex 布局是父组件对子组件的布局. 默认不改变子组件在主轴(flex-direction的轴方向)的大小, 子组件会占据所有负轴(与flex-direction垂直的轴方向)大小.

alin-self: auto; // Default. The element inherits its parent container’s align-items property, or “stretch” if it has no parent container

如果设置 align-items 那么会改变子组件在负轴的表现形态.

flex 布局中所有的子组件都会变成 block:

<div style="display: flex">
  <span id="span1"></span>
  <div></div>
</div>
<script>
  console.log(window.getComputedStyle(span1, null).getPropertyValue("display")) // block
</script>

使用 flex-flow 代替 flex-directionflex-wrap

flex-flow: <'flex-direction'> || <'flex-wrap'>

在我们一生中,命运赐予我们每个人三个导师,三个朋友,三名敌人,三个挚爱。但这十二人总是不以真面目示人,总要等到我们爱上他们、离开他们、或与他们对抗时,才能知道他们是其中哪种角色。