CSS Grid Item
Grid items are the direct children of a grid container. CSS Grid provides several properties to control the placement, alignment, and size of grid items, making it easier to create flexible and responsive layouts.
Key Topics
Grid Item Placement
Grid items can be placed in specific rows and columns using grid-row
and grid-column
properties. You can also define start and end positions for precise placement.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Grid Item Placement</title>
<style>
.grid-container {
display: grid;
grid-template-rows: 100px 100px 100px;
grid-template-columns: 1fr 1fr 1fr;
gap: 10px;
background-color: #F0F0F0;
padding: 10px;
}
.grid-item {
background-color: #007BFF;
color: white;
text-align: center;
padding: 20px;
}
.special-item {
grid-row: 2 / 3;
grid-column: 2 / 4;
background-color: #DC3545;
}
</style>
</head>
<body>
<div class="grid-container">
<div class="grid-item">Item 1</div>
<div class="grid-item">Item 2</div>
<div class="grid-item">Item 3</div>
<div class="grid-item">Item 4</div>
<div class="special-item">Spanned Item</div>
<div class="grid-item">Item 6</div>
</div>
</body>
</html>
Explanation: The red grid item spans the second row and occupies columns two and three, as defined by grid-row
and grid-column
.
Spanning Rows and Columns
Use grid-row
and grid-column
shorthand properties to span multiple rows or columns.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Grid Item Span</title>
<style>
.grid-container {
display: grid;
grid-template-rows: repeat(3, 100px);
grid-template-columns: repeat(3, 1fr);
gap: 10px;
background-color: #F0F0F0;
padding: 10px;
}
.grid-item {
background-color: #007BFF;
color: white;
text-align: center;
padding: 20px;
}
.spanning-item {
grid-row: span 2;
grid-column: span 2;
background-color: #28A745;
}
</style>
</head>
<body>
<div class="grid-container">
<div class="grid-item">Item 1</div>
<div class="grid-item">Item 2</div>
<div class="spanning-item">Spanning Item</div>
<div class="grid-item">Item 4</div>
<div class="grid-item">Item 5</div>
</div>
</body>
</html>
Explanation: The green grid item spans two rows and two columns using shorthand syntax.
Alignment of Grid Items
Align items along the grid container’s row or column axes using properties like align-self
and justify-self
.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Grid Item Alignment</title>
<style>
.grid-container {
display: grid;
grid-template-rows: 100px 100px;
grid-template-columns: 1fr 1fr;
gap: 10px;
background-color: #F0F0F0;
padding: 10px;
}
.grid-item {
background-color: #FFC107;
color: black;
text-align: center;
padding: 20px;
}
.aligned-item {
align-self: center;
justify-self: center;
background-color: #6C757D;
}
</style>
</head>
<body>
<div class="grid-container">
<div class="grid-item">Item 1</div>
<div class="aligned-item">Aligned Item</div>
<div class="grid-item">Item 3</div>
<div class="grid-item">Item 4</div>
</div>
</body>
</html>
Explanation: The gray grid item is centered horizontally and vertically using align-self
and justify-self
.
Key Takeaways
- Placement: Use
grid-row
andgrid-column
to position items within the grid. - Span: Items can span multiple rows or columns for flexible layouts.
- Alignment: Align items individually using
align-self
andjustify-self
. - Responsiveness: Grid items adapt to different screen sizes with media queries.