Arranging Elements: Introduction to Float and Flexbox in CSS

Master the art of element arrangement with two fundamental CSS tools. Learn when to use the classic float and when to leverage the modern power of Flexbox.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed non risus. Suspendisse lectus tortor, dignissim sit amet, adipiscing nec, ultricies sed, dolor.

Welcome! Let's learn how to arrange elements on a page, starting with a classic: `float`.

.image {
  float: left;
  margin-right: 1rem;
}

The Classic `float` Property

The float property was traditionally used for layouts, allowing you to push an element to one side and let other content wrap around it. It's still very useful for flowing text around images. Common values are left, right, and none.

Understanding Flex Containers

Flexbox is a modern layout model. To start, you designate a container element as a flex container with display: flex;. This simple declaration turns its direct children into "flex items," which can then be easily arranged and aligned.

Controlling the Main Axis (`justify-content`)

The justify-content property aligns flex items along the main axis (horizontally, by default). Use values like flex-start, center, flex-end, space-between, or space-around to distribute space among them.

Controlling the Cross Axis (`align-items`)

To align items along the cross axis (vertically, by default), use align-items. Values like flex-start, center, and flex-end let you control their vertical position within the flex container, which is perfect for vertical centering.

Practice Zone


Interactive Test 1: Drag & Drop

Arrastra en el orden correspondiente.


Arrastra las opciones:

center
flex
center

Completa el código:

display: ______;
justify-content: ______;
align-items: ______;
Unlock with Premium

Interactive Test 2: Fill in the Blanks

Rellena los huecos en cada casilla.

.container {
  display: ;
  justify-content: ;
}
Unlock with Premium

Practice Example: Code Editor

Use Flexbox to center the blue box both horizontally and vertically inside the gray container. Hint: You'll need three properties on the `.container`.

* Write the code below. Correct characters will be shown in green and incorrect ones in red.

Unlock with Premium

Knowledge Check

Which Flexbox property distributes space between items along the main axis?


Unlock with Premium

Practical Layouts with Float and Flexbox

Choosing the right layout tool is crucial. While Flexbox is the modern standard for most layout tasks, `float` still has its place. Let's explore when to use each.


1. Classic Use Case for `float`: Wrapping Text

The primary, modern use for float is to let text content flow beautifully around an element, typically an image. It's simple and effective for this specific task.

.article-image {
  float: left;
  margin: 0 1em 0.5em 0;
}
placeholderLorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent scelerisque, justo nec vestibulum laoreet, nunc justo tempus elit, nec consequat.

2. Building a Navigation Bar with Flexbox

Flexbox makes creating a robust navigation bar effortless. You can easily space out links, align them vertically, and adapt the layout for different screen sizes.

nav {
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: #333;
  padding: 1rem;
}

3. Creating a Responsive Card Layout

Flexbox excels at creating grids of items. With flex-wrap: wrap;, items will automatically wrap onto the next line when they run out of space, which is perfect for responsive design.

.card-container {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
}
Card 1
Card 2
Card 3

Practical Takeaway: Use Flexbox for layout components like navigation, headers, and card grids. Use `float` primarily for its original purpose: wrapping text around images within an article.