Bird
Raised Fist0
Tailwindmarkup~5 mins

Flex basis and sizing in Tailwind

Choose your learning style10 modes available
Introduction

Flex basis and sizing help control how much space a flexible item takes inside a container. It makes layouts neat and balanced.

You want a box to start with a specific width before growing or shrinking.
You need items in a row to share space evenly or with custom sizes.
You want to make a responsive layout that adjusts nicely on different screens.
You want to prevent a flex item from getting too small or too big.
You want to set a minimum or maximum size for flexible boxes.
Syntax
Tailwind
flex-basis-{size}
flex-grow
flex-shrink
basis-{size}
min-w-{size}
max-w-{size}

flex-basis sets the initial size of a flex item before it grows or shrinks.

In Tailwind, basis-{size} sets flex-basis, and flex-grow or flex-shrink control growing or shrinking.

Examples
Three boxes with flex-basis set to 25%, 50%, and 25% of the container width.
Tailwind
<div class="flex">
  <div class="basis-1/4">Box 1</div>
  <div class="basis-1/2">Box 2</div>
  <div class="basis-1/4">Box 3</div>
</div>
First box has fixed width 8rem, second box grows to fill remaining space.
Tailwind
<div class="flex">
  <div class="basis-32">Fixed 8rem width</div>
  <div class="flex-grow">Grows to fill space</div>
</div>
First box won't shrink smaller than its basis, second box can shrink.
Tailwind
<div class="flex">
  <div class="basis-1/3 flex-shrink-0">No shrink</div>
  <div class="basis-2/3">Shrinks if needed</div>
</div>
Sample Program

This page shows a flex container with three boxes sized by flex-basis using Tailwind's basis-1/4 and basis-1/2 classes. The boxes have background colors and padding for clarity.

Tailwind
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1" />
  <title>Flex Basis and Sizing Example</title>
  <script src="https://cdn.tailwindcss.com"></script>
</head>
<body class="p-6">
  <h1 class="text-xl font-bold mb-4">Flex Basis and Sizing with Tailwind</h1>
  <div class="flex border border-gray-400 rounded">
    <div class="basis-1/4 bg-blue-300 p-4 text-center">25% width</div>
    <div class="basis-1/2 bg-green-300 p-4 text-center">50% width</div>
    <div class="basis-1/4 bg-red-300 p-4 text-center">25% width</div>
  </div>
</body>
</html>
OutputSuccess
Important Notes

Use basis-{size} to set the starting size of a flex item.

Combine with flex-grow or flex-shrink to control how items grow or shrink.

Sizes can be fractions like basis-1/3, fixed units like basis-32 (8rem), or custom values.

Summary

Flex basis sets the initial size of a flex item before it grows or shrinks.

Tailwind uses basis-{size} classes to control flex basis easily.

Combine flex basis with grow and shrink classes for flexible, responsive layouts.

Practice

(1/5)
1. What does the Tailwind class basis-1/3 do in a flex container?
easy
A. Makes the flex item grow to fill one-third of the container
B. Sets the initial size of the flex item to one-third of the container's main size
C. Prevents the flex item from shrinking below one-third of its size
D. Sets the flex item to always be exactly one-third of the container width regardless of content

Solution

  1. Step 1: Understand flex basis meaning

    Flex basis sets the starting size of a flex item before growing or shrinking.
  2. Step 2: Interpret basis-1/3 in Tailwind

    This class sets the flex basis to one-third of the container's main size, not forcing exact size but initial size.
  3. Final Answer:

    Sets the initial size of the flex item to one-third of the container's main size -> Option B
  4. Quick Check:

    Flex basis = initial size = one-third [OK]
Hint: Flex basis sets start size, not final size [OK]
Common Mistakes:
  • Confusing basis with grow or shrink
  • Thinking basis fixes size exactly
  • Assuming basis prevents shrinking
2. Which of the following is the correct Tailwind class to set a flex item's basis to 16rem?
easy
A. basis-16rem
B. basis-64rem
C. basis-16
D. basis-64

Solution

  1. Step 1: Recall Tailwind sizing scale

    Tailwind uses numeric scale where 64 equals 16rem (4rem * 16).
  2. Step 2: Match class syntax

    The correct class is basis-64 to set basis to 16rem, no 'rem' suffix used.
  3. Final Answer:

    basis-64 -> Option D
  4. Quick Check:

    basis-64 = 16rem in Tailwind [OK]
Hint: Tailwind uses numbers, not units, for spacing [OK]
Common Mistakes:
  • Adding 'rem' suffix in class name
  • Using wrong numeric scale
  • Confusing basis with width classes
3. Given this HTML snippet:
<div class="flex w-96">
  <div class="basis-1/4 bg-blue-500">Box 1</div>
  <div class="basis-1/2 bg-red-500">Box 2</div>
  <div class="basis-1/4 bg-green-500">Box 3</div>
</div>

What will be the width of Box 2 inside the 24rem wide container?
medium
A. 6rem
B. 24rem
C. 12rem
D. 18rem

Solution

  1. Step 1: Calculate container width in rem

    The container width is 24rem (w-96 means 24rem).
  2. Step 2: Calculate Box 2 basis size

    Box 2 has basis-1/2, so initial size is half of 24rem = 12rem.
  3. Final Answer:

    12rem -> Option C
  4. Quick Check:

    Half of 24rem = 12rem [OK]
Hint: Multiply container width by basis fraction [OK]
Common Mistakes:
  • Confusing basis fraction with grow factor
  • Using container width in px instead of rem
  • Adding basis sizes instead of calculating individually
4. You wrote this Tailwind code:
<div class="flex">
  <div class="basis-2/3">Item 1</div>
  <div class="basis-1/2">Item 2</div>
</div>

But the items overflow the container width. What is the main reason?
medium
A. The sum of basis sizes (2/3 + 1/2) exceeds 1, causing overflow
B. Missing flex-grow classes to allow shrinking
C. Tailwind does not support fractional basis classes
D. The container needs flex-wrap to prevent overflow

Solution

  1. Step 1: Calculate the sum of basis fractions

    2/3 + 1/2 = 4/6 + 3/6 = 7/6 > 1.
  2. Step 2: Understand the effect

    When the sum of flex-basis values exceeds 1, it causes the flex items to overflow the container.
  3. Final Answer:

    The sum of basis sizes (2/3 + 1/2) exceeds 1, causing overflow -> Option A
  4. Quick Check:

    Sum of basis fractions > 1 causes overflow [OK]
Hint: Check if basis fractions sum over 1 for overflow [OK]
Common Mistakes:
  • Assuming basis fractions always fit container
  • Ignoring default flex shrink behavior
  • Confusing grow with shrink effects
5. You want three flex items inside a container to have these widths initially: 25%, 50%, and 25%. You also want the middle item to grow twice as fast as the others when space is available. Which Tailwind classes correctly achieve this?
hard
A. basis-1/4 grow, basis-1/2 [flex-grow:2], basis-1/4 grow
B. basis-1/4 flex-grow-1, basis-1/2 flex-grow-2, basis-1/4 flex-grow-1
C. basis-1/4 grow, basis-1/2 grow [flex-grow:2], basis-1/4 grow
D. basis-1/4 grow, basis-1/2 grow, basis-1/4 grow

Solution

  1. Step 1: Set correct basis classes

    Use basis-1/4 for 25% and basis-1/2 for 50% widths.
  2. Step 2: Apply grow classes

    Tailwind uses grow for flex-grow:1 and [flex-grow:2] for flex-grow:2.
  3. Step 3: Assign grow classes to items

    First and third items get grow, middle item gets [flex-grow:2] to grow twice as fast.
  4. Final Answer:

    basis-1/4 grow, basis-1/2 [flex-grow:2], basis-1/4 grow -> Option A
  5. Quick Check:

    Use grow and [flex-grow:2] with basis fractions [OK]
Hint: Use grow and [flex-grow:2] classes for different grow rates [OK]
Common Mistakes:
  • Using non-existent flex-grow-1 class
  • Combining grow and grow-2 on same element
  • Forgetting to set basis sizes
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard