Summary: Pull Request resolved: https://github.com/facebook/yoga/pull/1613 So that GitHub links to edit a page point to the right place. This will fail in OSS build until I switch the directory used by Vercel instance, but I am waiting to do that until ready to land, since that would cause other in progress changes to fail when exported. Reviewed By: joevilches Differential Revision: D54837857 fbshipit-source-id: 9bec90232dbe3ec8638568685671185d597fcf2d
66 lines
2.5 KiB
Plaintext
66 lines
2.5 KiB
Plaintext
---
|
||
sidebar_position: 5
|
||
---
|
||
|
||
import Playground from '@site/src/components/Playground';
|
||
|
||
# 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](/docs/styling/width-height) of that
|
||
child if its parent is a container with a row [flex direction](/docs/styling/flex-direction) or setting the [height](/docs/styling/width-height) of a child
|
||
if its parent is a container with a column [flex direction](/docs/styling/flex-direction). 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>`} />
|