10分钟理解CSS3 Grid布局

基本介绍

Grid做前端的同学应该都很熟悉了,翻译成中文为“栅格”,用过bootstrap、semantic ui、ant design的同学肯定都了解grid layout(删格布局),以往css框架中的grid布局一般是通过float和百分比的宽度实现的,这种实现有几种缺点:

  • html不够简洁;
  • 需要清除浮动以避免高度塌陷;
  • 列的个数是固定的,不能灵活定义。比如bootstrap是12列,semantic ui是16列,ant design 24列。

当然grid也可以用flex实现,但是并不会比用float简单多少,而且flex擅长的是一维空间的布局,而对grid这种二维空间并不擅长。现在css3从规范和标准层面实现了grid,编程体验大大提升!

兼容性

用法

Grid作为一个二维的栅格系统,由若干列(column)和行(row)构成。

1. Column

(1) 设置column

CSS3中的Grid可以划分为任意个数的列(column),而且每个column的宽度可以任意设置!我们先来看一个简单的例子:

<div id="content">
    <div>1</div>
    <div>2</div>
    <div>3</div>
    <div>4</div>
    <div>5</div>
    <div>6</div>
    <div>7</div>
    <div>8</div>
    <div>9</div>
</div>

css:

body{
    color: #fff;
    text-align: center;
}
#content{
    display: grid;
    grid-template-columns: 33.3% 33.3% 33.3%;
    max-width: 960px;
    margin: 0 auto;
}
#content div{
    background: lightgrey;
    padding: 30px;
}
#content div:nth-child(even){
    background: skyblue;
}

效果:

当我们设置了display: gridgrid-template-columns: 33.3% 33.3% 33.3%#content就被划分成了三行三列的grid,此时#content被称为grid container,而#content的子元素称为grid item。

我们也可以任意改变column的个数和宽度,比如:

#content{
    grid-template-columns: 10% 20% 30% 40%;
}

效果:

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CSS Grid布局是一种用于网页布局的强大的CSS模块。它提供了一种二维网格系统,可以将页面划分为行和列,并通过在网格单元中放置元素来创建复杂的布局。 使用CSS Grid布局,你可以轻松地定义网格容器和网格项。网格容器是包含网格项的父元素,而网格项则是直接放置在网格容器内的子元素。 以下是CSS Grid布局的一些重要概念和特性: 1. 网格容器(Grid Container):通过设置`display: grid`来创建一个网格容器。它是网格布局的父元素。 2. 网格项(Grid Item):直接放置在网格容器内的子元素。可以使用`grid-column`和`grid-row`属性来指定网格项在网格中的位置。 3. 网格线(Grid Line):网格中的水平线和垂直线。可以通过指定行号和列号来引用网格线。 4. 网格轨道(Grid Track):两个相邻网格线之间的空间,可以是行轨道(row track)或列轨道(column track)。 5. 网格单元(Grid Cell):由四个相邻的网格线围成的矩形区域。 6. 网格区域(Grid Area):由多个网格单元组成的矩形区域。 使用CSS Grid布局,你可以通过以下方式来创建网格布局: 1. 定义网格模板(Grid Template):通过设置`grid-template-rows`和`grid-template-columns`属性来定义网格的行和列。 2. 放置网格项:使用`grid-column`和`grid-row`属性来指定网格项在网格中的位置。 3. 调整网格布局:可以使用其他属性如`grid-gap`、`grid-auto-rows`、`grid-auto-columns`等来调整网格布局CSS Grid布局提供了灵活且强大的布局能力,可以轻松实现复杂的网页布局。它比传统的基于浮动和定位的布局方法更直观和易于理解

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值