Dividing utilities between children helps you control how space and styles apply to each child element inside a container. It makes your layout neat and organized.
Divide utilities between children in Tailwind
Start learning this pattern below
Jump into concepts and practice - no test required
parent-class > :child-selector { @apply utility-classes; }:first-child, :last-child, or :nth-child(n) to target specific children.@apply lets you add utility classes inside CSS for children.flex-1.<div class="flex"> <div class="flex-1">Child 1</div> <div class="flex-1">Child 2</div> <div class="flex-1">Child 3</div> </div>
<div class="space-x-4"> <button>Button 1</button> <button>Button 2</button> <button>Button 3</button> </div>
<style>
.parent > :first-child {
@apply text-red-500;
}
.parent > :last-child {
@apply text-blue-500;
}
</style>
<div class="parent">
<p>First child</p>
<p>Middle child</p>
<p>Last child</p>
</div>This example shows three children inside a flex container. Each child has a different background color and padding using Tailwind utilities applied to specific children.
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <title>Divide Utilities Between Children</title> <script src="https://cdn.tailwindcss.com"></script> <style> .container > :first-child { @apply bg-green-200 p-4; } .container > :nth-child(2) { @apply bg-yellow-200 p-4; } .container > :last-child { @apply bg-red-200 p-4; } </style> </head> <body class="flex justify-center items-center min-h-screen bg-gray-50"> <div class="container flex space-x-4"> <div>Child One</div> <div>Child Two</div> <div>Child Three</div> </div> </body> </html>
Use space-x-* or space-y-* utilities on the parent to add consistent spacing between children.
Target children with CSS selectors like :first-child or :nth-child(n) combined with @apply for custom styling.
Remember to use semantic HTML and keep your layout accessible by using proper roles and keyboard navigation if needed.
Dividing utilities between children helps control layout and style for each child element.
Use Tailwind's flex, spacing, and @apply with child selectors to style children differently.
This makes your design organized, responsive, and easy to maintain.
Practice
space-x-4 do when applied to a parent container with multiple child elements?Solution
Step 1: Understand the
This utility adds horizontal space (margin) between direct child elements of a flex container.space-x-4utilityStep 2: Recognize the spacing size
The number 4 corresponds to 1rem (16px by default) spacing between children horizontally.Final Answer:
It adds horizontal spacing of 1rem between each child element. -> Option AQuick Check:
space-x-4 = horizontal gap 1rem [OK]
- Confusing space-x with vertical spacing (space-y)
- Thinking it adds padding inside children
- Assuming it centers children
Solution
Step 1: Identify the correct pseudo-class utility
Tailwind usesfirst:prefix to target the first child element.Step 2: Confirm syntax correctness
first:bg-blue-500applies background color blue-500 only to the first child.Final Answer:
first:bg-blue-500 -> Option BQuick Check:
first: prefix targets first child [OK]
- Using invalid utility names like child-1
- Placing pseudo-class after the utility
- Trying to style parent with child selectors
<div class="flex space-x-6"> <div class="p-4 bg-red-300">Box 1</div> <div class="p-4 bg-green-300">Box 2</div> <div class="p-4 bg-blue-300">Box 3</div> </div>What will be the horizontal space between Box 1 and Box 2?
Solution
Step 1: Understand the
This utility adds horizontal margin of size 6 between child elements in a flex container.space-x-6utilityStep 2: Know the spacing scale
In Tailwind, 6 corresponds to 1.5rem or 24px spacing.Final Answer:
1.5rem (24px) -> Option DQuick Check:
space-x-6 = 1.5rem horizontal gap [OK]
- Confusing spacing scale numbers with px values
- Assuming space-x adds padding inside children
- Ignoring that space-x only works on flex or grid parents
space-x-4 on a column flex container. What is the problem?Solution
Step 1: Understand flex direction and space utilities
In a column flex container, children stack vertically.space-x-4adds horizontal gaps, which have no effect here.Step 2: Identify correct utility for vertical spacing
To add vertical spacing,space-y-4should be used instead.Final Answer:
No vertical spacing appears because space-x adds horizontal gaps only. -> Option AQuick Check:
space-x only adds horizontal gaps [OK]
- Expecting space-x to add vertical spacing
- Thinking it causes syntax errors
- Using space-x on non-flex containers
Solution
Step 1: Understand Tailwind's order of utility application
Tailwind applies utilities in order. Base border color should come first, then overrides withfirst:andlast:.Step 2: Check syntax correctness
first:border-red-500andlast:border-green-500are correct pseudo-class prefixes. The baseborder-blue-500applies to all children.Step 3: Identify incorrect options
first:border-red-500 last:border-green-500 border-blue-500applies base border last, which overrides first/last styles.border-blue-500 first:border-red-500 last:border-green-500 !importantuses invalid!important.border-blue-500 first-child:border-red-500 last-child:border-green-500uses invalid selectors.Final Answer:
border-blue-500 first:border-red-500 last:border-green-500 -> Option CQuick Check:
Base first, then first:/last: overrides [OK]
- Placing base border after first/last overrides
- Using invalid selectors like first-child:
- Trying to use !important in Tailwind classes
