css 语言 grid template columns 与 rows 的单位混合使用技巧

CSS阿木 发布于 2025-06-17 7 次阅读


摘要:

CSS Grid布局是现代网页设计中的一种强大布局工具,它允许开发者以灵活的方式创建复杂的页面布局。在Grid布局中,`grid-template-columns`和`grid-template-rows`属性用于定义网格的列和行。本文将深入探讨这两个属性的单位混合使用技巧,帮助开发者更好地利用CSS Grid布局。

一、

随着Web技术的不断发展,响应式设计和复杂布局的需求日益增长。CSS Grid布局作为一种强大的布局工具,提供了丰富的功能来满足这些需求。在Grid布局中,`grid-template-columns`和`grid-template-rows`属性是定义网格结构的关键。本文将重点介绍这两个属性的单位混合使用技巧。

二、grid-template-columns与rows属性简介

在CSS Grid布局中,`grid-template-columns`属性用于定义网格的列,而`grid-template-rows`属性用于定义网格的行。这两个属性可以接受多种单位,包括:

- 长度单位:如px、em、rem、%、ch等。

- fr单位:表示可用空间的一部分。

- auto关键字:表示自动大小。

三、单位混合使用技巧

1. 长度单位与fr单位的混合

在`grid-template-columns`或`grid-template-rows`中,可以混合使用长度单位和fr单位。以下是一个示例:

css

.container {


display: grid;


grid-template-columns: 100px 1fr 2fr;


grid-template-rows: auto 1fr;


}


在这个例子中,第一列的宽度为100px,第二列和第三列分别占据剩余空间的一部分。

2. 长度单位与auto关键字的混合

同样,可以混合使用长度单位和auto关键字。以下是一个示例:

css

.container {


display: grid;


grid-template-columns: 100px auto 1fr;


grid-template-rows: auto auto 1fr;


}


在这个例子中,第一列的宽度为100px,第二列的大小由内容自动调整,第三列占据剩余空间的一部分。

3. fr单位与auto关键字的混合

在`grid-template-columns`或`grid-template-rows`中,也可以混合使用fr单位和auto关键字。以下是一个示例:

css

.container {


display: grid;


grid-template-columns: 1fr auto 1fr;


grid-template-rows: 1fr auto 1fr;


}


在这个例子中,第一行和第三行的高度由内容自动调整,第二行占据剩余空间的一部分。

4. 百分比单位与fr单位的混合

在响应式设计中,百分比单位与fr单位混合使用可以创建灵活的布局。以下是一个示例:

css

.container {


display: grid;


grid-template-columns: 20% 1fr 30%;


grid-template-rows: 1fr 1fr 1fr;


}


在这个例子中,第一列和第三列的宽度分别为20%和30%,第二列占据剩余空间的一部分。

四、总结

CSS Grid布局的`grid-template-columns`和`grid-template-rows`属性提供了丰富的单位选择,使得开发者可以创建灵活且复杂的布局。通过混合使用长度单位、fr单位和auto关键字,可以更好地控制网格的大小和布局。掌握这些单位混合使用技巧,将有助于开发者利用CSS Grid布局实现各种设计需求。

五、实践案例

以下是一个使用混合单位创建响应式网格布局的实践案例:

html

<!DOCTYPE html>


<html lang="en">


<head>


<meta charset="UTF-8">


<meta name="viewport" content="width=device-width, initial-scale=1.0">


<style>


.container {


display: grid;


grid-template-columns: 1fr 2fr;


grid-template-rows: auto 1fr;


gap: 10px;


}


.item {


padding: 20px;


background-color: f0f0f0;


border: 1px solid ccc;


}


@media (max-width: 600px) {


.container {


grid-template-columns: 1fr;


}


}


</style>


</head>


<body>


<div class="container">


<div class="item">Item 1</div>


<div class="item">Item 2</div>


<div class="item">Item 3</div>


<div class="item">Item 4</div>


</div>


</body>


</html>


在这个案例中,当屏幕宽度小于600px时,网格布局会从两列变为单列,以适应不同屏幕尺寸。

相信读者已经对CSS Grid布局中的`grid-template-columns`和`grid-template-rows`属性的单位混合使用技巧有了更深入的了解。在实际开发中,灵活运用这些技巧将有助于创建更加美观和实用的网页布局。