Rows and columns are the basic building blocks of the Bootstrap Grid System. A row is used to organize columns horizontally, while columns are used to place and size content inside the row.
Bootstrap uses a 12-column grid. By combining rows, columns, and responsive breakpoint classes, you can create flexible and responsive website layouts.
A Bootstrap row is created using the .row class.
It acts as a horizontal container for columns.
<div class="row">
Content
</div>
Columns are normally placed directly inside a row.
A Bootstrap column is created using classes such as
.col, .col-6, .col-md-4, etc.
<div class="col">
Column Content
</div>
Columns determine how much space an element occupies inside a row.
The simplest Bootstrap grid contains a container, row, and column.
<div class="container">
<div class="row">
<div class="col">
Hello Bootstrap
</div>
</div>
</div>
A single .col takes the available width of the row.
<div class="row">
<div class="col">
Full Width Content
</div>
</div>
This is useful when you want one flexible column.
Two .col elements automatically share the available width
equally.
<div class="row">
<div class="col">
Column 1
</div>
<div class="col">
Column 2
</div>
</div>
Each column receives an equal share of the available row width.
Three .col elements automatically create three equal-width
columns.
<div class="row">
<div class="col">One</div>
<div class="col">Two</div>
<div class="col">Three</div>
</div>
The col-6 class uses 6 out of the 12 available grid columns.
<div class="row">
<div class="col-6">
Left
</div>
<div class="col-6">
Right
</div>
</div>
6 + 6 = 12, so two equal columns fit in one row.
The col-4 class uses 4 out of 12 grid columns.
<div class="row">
<div class="col-4">One</div>
<div class="col-4">Two</div>
<div class="col-4">Three</div>
</div>
4 + 4 + 4 = 12.
The col-3 class uses 3 out of 12 grid columns.
<div class="row">
<div class="col-3">1</div>
<div class="col-3">2</div>
<div class="col-3">3</div>
<div class="col-3">4</div>
</div>
3 + 3 + 3 + 3 = 12.
Columns do not have to be equal in width.
<div class="row">
<div class="col-8">
Main Content
</div>
<div class="col-4">
Sidebar
</div>
</div>
8 + 4 = 12.
You can create other combinations as long as the columns fit within the 12-column grid.
<div class="row">
<div class="col-7">
Main Area
</div>
<div class="col-5">
Side Area
</div>
</div>
7 + 5 = 12.
A common layout is a large content area with a smaller sidebar.
<div class="row">
<div class="col-9">
Main Content
</div>
<div class="col-3">
Sidebar
</div>
</div>
9 + 3 = 12.
Columns can contain text, images, buttons, cards, forms, or other HTML elements.
<div class="row">
<div class="col-6">
<h3>About Us</h3>
<p>
We provide web development courses.
</p>
</div>
<div class="col-6">
<button class="btn btn-primary">
Learn More
</button>
</div>
</div>
Responsive column classes allow the layout to change according to viewport width.
<div class="col-12 col-md-6">
Responsive Content
</div>
The column takes the full width by default and half width from the medium breakpoint and above.
Bootstrap follows a mobile-first approach.
<div class="col-12 col-md-6">
Content
</div>
Here, col-12 is the base layout. The
col-md-6 rule applies from the medium breakpoint upward.
You can create three responsive columns using col-md-4.
<div class="row">
<div class="col-12 col-md-4">
Box 1
</div>
<div class="col-12 col-md-4">
Box 2
</div>
<div class="col-12 col-md-4">
Box 3
</div>
</div>
On smaller screens each box is full width. From the medium breakpoint upward, each box uses four columns.
You can create four columns on larger screens using
col-lg-3.
<div class="row">
<div class="col-12 col-lg-3">
1
</div>
<div class="col-12 col-lg-3">
2
</div>
<div class="col-12 col-lg-3">
3
</div>
<div class="col-12 col-lg-3">
4
</div>
</div>
You can define different widths for different screen sizes.
<div class="col-12 col-sm-6 col-lg-4">
Course
</div>
col-12 → full width by defaultcol-sm-6 → half width from small breakpointcol-lg-4 → one-third width from large breakpointBootstrap provides gutter utilities for spacing between columns.
<div class="row g-4">
<div class="col-md-6">
Box 1
</div>
<div class="col-md-6">
Box 2
</div>
</div>
The g-4 class adds gutter spacing in both directions.
Use gx-* classes to control horizontal gutter spacing.
<div class="row gx-5">
<div class="col-6">
Left
</div>
<div class="col-6">
Right
</div>
</div>
Use gy-* classes to control vertical gutter spacing.
<div class="row gy-4">
<div class="col-6">
Box 1
</div>
<div class="col-6">
Box 2
</div>
</div>
Rows and columns are commonly used to create responsive card layouts.
<div class="row g-4">
<div class="col-md-4">
<div class="card">
<div class="card-body">
HTML Course
</div>
</div>
</div>
<div class="col-md-4">
<div class="card">
<div class="card-body">
CSS Course
</div>
</div>
</div>
<div class="col-md-4">
<div class="card">
<div class="card-body">
Bootstrap Course
</div>
</div>
</div>
</div>
Rows and columns are useful for arranging form controls.
<div class="row">
<div class="col-md-6">
<label class="form-label">
First Name
</label>
<input
type="text"
class="form-control">
</div>
<div class="col-md-6">
<label class="form-label">
Last Name
</label>
<input
type="text"
class="form-control">
</div>
</div>
A common website layout uses a large main content column and a smaller sidebar.
<div class="row">
<div class="col-lg-8">
<h2>Main Content</h2>
<p>
Website content goes here.
</p>
</div>
<div class="col-lg-4">
<h3>Sidebar</h3>
<p>
Sidebar content goes here.
</p>
</div>
</div>
If columns in a row require more than 12 grid columns, the extra columns can move to a new line.
<div class="row">
<div class="col-8">
8 Columns
</div>
<div class="col-6">
6 Columns
</div>
</div>
8 + 6 = 14, so the second column cannot fit in the remaining space and wraps to another line.
You can create another row inside a column to build more complex layouts.
<div class="row">
<div class="col-md-8">
Main Content
<div class="row">
<div class="col-6">
Box 1
</div>
<div class="col-6">
Box 2
</div>
</div>
</div>
<div class="col-md-4">
Sidebar
</div>
</div>
Bootstrap rows use Flexbox, so Flexbox utilities can be used to align columns.
<div class="row align-items-center">
<div class="col">
Content 1
</div>
<div class="col">
Content 2
</div>
</div>
The align-items-center class vertically aligns the row's
items.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta
name="viewport"
content="width=device-width,
initial-scale=1.0">
<title>
Bootstrap Rows and Columns
</title>
<link
href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css"
rel="stylesheet">
</head>
<body>
<div class="container py-5">
<h1 class="text-center mb-4">
Our Courses
</h1>
<div class="row g-4">
<div class="col-12 col-md-6 col-lg-4">
<div class="card h-100">
<div class="card-body">
<h5>HTML</h5>
<p>
Learn HTML fundamentals.
</p>
<button
class="btn btn-primary">
Learn More
</button>
</div>
</div>
</div>
<div class="col-12 col-md-6 col-lg-4">
<div class="card h-100">
<div class="card-body">
<h5>CSS</h5>
<p>
Learn CSS styling.
</p>
<button
class="btn btn-success">
Learn More
</button>
</div>
</div>
</div>
<div class="col-12 col-md-6 col-lg-4">
<div class="card h-100">
<div class="card-body">
<h5>Bootstrap</h5>
<p>
Learn responsive web design.
</p>
<button
class="btn btn-danger">
Learn More
</button>
</div>
</div>
</div>
</div>
</div>
<script
src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js">
</script>
</body>
</html>
This example demonstrates a container, row, responsive columns, gutters, cards, buttons, and Bootstrap breakpoints working together.
.row creates a horizontal group for columns..col creates flexible equal-width columns..col-6 uses 6 of the 12 columns..col-4 uses 4 of the 12 columns..col-3 uses 3 of the 12 columns.g-*, gx-*, and gy-* control grid
gutters.Question: Which Bootstrap class is used to create a row?