75 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			75 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| 
								 | 
							
								---
							 | 
						||
| 
								 | 
							
								title: Flex-grow
							 | 
						||
| 
								 | 
							
								---
							 | 
						||
| 
								 | 
							
								# Flex-Grow
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								The flex-grow property is a flexbox property that allows you to specify the allocation of free space to containers within a flex-container. It provides a solution to all that unwanted space!
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								It'll turn your container from this
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<img src = "https://i.imgur.com/lFJaBUfh.png">
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<b><h1>to this</h1></b>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<img src = "https://i.imgur.com/4X8ITZih.png">
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								What just happened?
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Well, we added two things to the css syntax.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								HTML
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```html
							 | 
						||
| 
								 | 
							
								<p class = "ten">1</p>
							 | 
						||
| 
								 | 
							
								<p class = "twenty">2</p>
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								CSS
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```css
							 | 
						||
| 
								 | 
							
								body {
							 | 
						||
| 
								 | 
							
								  display:flex;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								p {
							 | 
						||
| 
								 | 
							
								  flex-grow: 1;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Two things happened
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								1. The parent container was converted into a flex-display by `display:flex`
							 | 
						||
| 
								 | 
							
								2. The remaining "free space" was then allocated among the remaining p containers in an equal ration since each has a flex-grow property of 1.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								What happens if we have p containers with different flex-grow properties?
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Let's see an example.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								First let's create two paragraphs and enable display: flex;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<img src = "https://i.imgur.com/wPqUgsih.png">
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Notice a few things
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								- The colour scheme is nice
							 | 
						||
| 
								 | 
							
								- There's some empty space to the right of the two boxes.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								That empty space is the "free space" that will be allocated to each of the different paragraphs later depending on their flex-grow properties.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								To see this in action, let's give the first one a class of "ten" and a flex-grow property of 1. Let's also give the second one a class of "twenty" and a flex-grow property of 2.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<img src = "https://i.imgur.com/7n0V1G4h.png">
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Notice a few things
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								1. The second one's size is not double that of the first one despite having a flex-grow property that is double that of the first.
							 | 
						||
| 
								 | 
							
								2. The entire space is filled. ( Some margins were added to the side to enable it to be seen more clearly. )
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								As we resize the screen, we also find that the first one shrinks at twice the speed of the second one.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<img src = "https://i.imgur.com/pa4grM8h.png">
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#### More Information:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<!-- Please add any articles you think might be helpful to read before writing the article -->
							 |