43 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			43 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| 
								 | 
							
								---
							 | 
						||
| 
								 | 
							
								title: Flex Basis Property
							 | 
						||
| 
								 | 
							
								---
							 | 
						||
| 
								 | 
							
								# Flex Basis 
							 | 
						||
| 
								 | 
							
								`flex-basis` property defines the size of the `flex-item` along the main axis of the flex container. The main axis is horizontal if `flex-direction` is set to `row` and it'll be vertical if the `flex-direction` property is set to `column`.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## Syntax
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```css
							 | 
						||
| 
								 | 
							
								flex-basis: auto | content | <width> | <height>;
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## flex-basis: auto
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								`flex-basis: auto` looks up the main size of the element and defines the size. For example, on a horizontal flex container, `auto` will look for `width` and `height` if the container axis is vertical.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								If no size is specified, `auto` will fall back to `content`.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## flex-basis: content
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								`flex-basis: content` resolves the size based on the element's content, unless `width` or `height` is set through normal `box-sizing`.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								In both the cases where `flex-basis` is either `auto` or `content`, if main size is specified, that size will take priority.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## flex-basis: <size>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								This is just as specifying `width` or `height`, but only more flexible. `flex-basis: 20em;` will set the initial size of the element to `20em`. Its final size will be based on available space, `flex-grow` multiple and `flex-shrink` multiple.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								The specification suggests use of `flex` shorthand property. This helps write `flex-basis` along with `flex-grow` and `flex-shrink` properties.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## Examples
							 | 
						||
| 
								 | 
							
								Here is rows of individual flex containers and individual flex elements showing how `flex-basis` affects the `box-sizing`.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								When the `flex-direction` is `column`, the same `flex-basis` will control the `height` property. An example below,
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#### More Information:
							 | 
						||
| 
								 | 
							
								Additional references on following pages:
							 | 
						||
| 
								 | 
							
								* CSS specification [level 1](https://drafts.csswg.org/css-flexbox-1/)
							 | 
						||
| 
								 | 
							
								* Mozilla Developer Network page on [flex-basis](https://developer.mozilla.org/en-US/docs/Web/CSS/flex-basis#content)
							 |