Add flex basis grow shrink documentation (#1607)
Summary: Pull Request resolved: https://github.com/facebook/yoga/pull/1607 tsia Reviewed By: yungsters Differential Revision: D54783674 fbshipit-source-id: 95530db0b129d8f0fb3e677430b9bfbf0662f590
This commit is contained in:
committed by
Facebook GitHub Bot
parent
25f94f8bfb
commit
a0a09b4570
@@ -2,4 +2,64 @@
|
|||||||
sidebar_position: 5
|
sidebar_position: 5
|
||||||
---
|
---
|
||||||
|
|
||||||
|
import Playground from '@site/src/components/Playground';
|
||||||
|
|
||||||
# Flex Basis, Grow, and Shrink
|
# Flex Basis, Grow, and Shrink
|
||||||
|
|
||||||
|
**Flex basis**: is an axis-independent way of providing the default size of an item
|
||||||
|
along the main axis. Setting the flex basis of a child is similar to setting the `width` of that
|
||||||
|
child if its parent is a container with `flex direction: row` or setting the `height` of a child
|
||||||
|
if its parent is a container with `flex direction: column`. The flex basis of an item is the
|
||||||
|
default size of that item, the size of the item before any flex grow and flex shrink
|
||||||
|
calculations are performed.
|
||||||
|
|
||||||
|
<Playground code={`<Layout config={{useWebDefaults: false}}>
|
||||||
|
<Node
|
||||||
|
style={{
|
||||||
|
width: 200,
|
||||||
|
height: 200,
|
||||||
|
padding: 10,
|
||||||
|
}}>
|
||||||
|
<Node style={{margin: 5, flexBasis: 50}} />
|
||||||
|
</Node>
|
||||||
|
</Layout>`} />
|
||||||
|
|
||||||
|
**Flex grow**: describes how any space within a container should be distributed
|
||||||
|
among its children along the main axis. After laying out its children, a container will
|
||||||
|
distribute any remaining space according to the flex grow values specified by its children.
|
||||||
|
|
||||||
|
Flex grow accepts any floating point value >= 0, with 0 being the default value.
|
||||||
|
A container will distribute any remaining space among its children weighted by the child’s flex grow value.
|
||||||
|
|
||||||
|
<Playground code={`<Layout config={{useWebDefaults: false}}>
|
||||||
|
<Node
|
||||||
|
style={{
|
||||||
|
width: 200,
|
||||||
|
height: 200,
|
||||||
|
padding: 10,
|
||||||
|
}}>
|
||||||
|
<Node style={{margin: 5, flexGrow: 0.25}} />
|
||||||
|
<Node style={{margin: 5, flexGrow: 0.75}} />
|
||||||
|
</Node>
|
||||||
|
</Layout>`} />
|
||||||
|
|
||||||
|
**Flex shrink**: describes how to shrink children along the main axis in the
|
||||||
|
case that the total size of the children overflow the size of the container on the main axis.
|
||||||
|
flex shrink is very similar to flex grow and can be thought of in the same way if
|
||||||
|
any overflowing size is considered to be negative remaining space.
|
||||||
|
These two properties also work well together by allowing children to grow and shrink as needed.
|
||||||
|
|
||||||
|
Flex shrink accepts any floating point value >= 0, with 1 being the default value.
|
||||||
|
A container will shrink its children weighted by the child’s flex shrink value.
|
||||||
|
|
||||||
|
<Playground code={`<Layout config={{useWebDefaults: false}}>
|
||||||
|
<Node
|
||||||
|
style={{
|
||||||
|
width: 200,
|
||||||
|
height: 200,
|
||||||
|
padding: 10,
|
||||||
|
}}>
|
||||||
|
<Node style={{margin: 5, flexShrink: 5, height: 150}} />
|
||||||
|
<Node style={{margin: 5, flexShrink: 10, height: 150}} />
|
||||||
|
</Node>
|
||||||
|
</Layout>`} />
|
||||||
|
Reference in New Issue
Block a user