【CSS】Grid布局

CSS Grid(网格)布局,它将网页划分成一个个网格,可以任意组合不同的网格,做出各种各样的布局(类似我们的excel)。(下面会写很多代码)

  • 首先,你必须使用display:grid/inline-grid将容器元素定义为一个 grid(网格) 布局
  • 然后用gird-template-columns和gird-template-rows设置列和行的尺寸,
  • 也可以用grid-template-areas(上面两个代码的简写)来设置列和行。
  • 然后通过grid-row-start、grid-row-end(上面两个简写grid-row:x/y)和grid-column-start、grid-column-end(上面两个简写grid-column:x/y)
  • 将其子元素放入这个 grid(网格) 中。
  • px

      .container {
        display: grid;
        grid-template-columns: 10px 10px 10px;
        grid-template-rows: 10px 10px 10px;
      }
    
  • 可以写成百分比

      .container {
        display: grid;
        grid-template-columns: 33.33% 33.33% 33.33%;
        grid-template-rows: 33.33% 33.33% 33.33%;
      }
    
  • 可以写成fr,代表几份,均分占几份

      .container {
        display: grid;
        grid-template-columns: 1fr 1fr 1fr;
        grid-template-rows: 1fr 1fr 1fr ;
      }
    
  • 可以使用 repeat()函数,简化重复的值

      .container {
        display: grid;
        grid-template-columns: repeat(3, 33.33%);
        grid-template-rows: repeat(3, 33.33%);
      }
    

都可以实现一个这个效果:
在这里插入图片描述

grid-row-start、grid-row-end和grid-column-start、grid-column-end属性

grid-column-start属性:左边框所在的垂直网格线(列)
grid-column-end属性:右边框所在的垂直网格线(列)
grid-row-start属性:上边框所在的水平网格线(行)
grid-row-end属性:下边框所在的水平网格线(行)

上图1-9分别写了9个div代码如下

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>JS Bin</title>
</head>
<body>

 <div class="container">
   <div class="box1">1</div>
   <div class="box2">2</div>
   <div class="box3">3</div>
   <div class="box4">4</div>
   <div class="box5">5</div>
   <div class="box6">6</div>
   <div class="box7">7</div>
   <div class="box8">8</div>
   <div class="box9">9</div>
 </div>
  
 
</body>
</html>

分布代码

.container {
  display: grid;
  grid-template-columns: 100px 100px 100px;
  grid-template-rows: 100px 100px 100px;
  border:1px solid red;
}
.box1 {
  grid-row-start:1 ;
  grid-row-end: 2;
  grid-column-start: 1;
  grid-column-end: 2;
  
  border:1px solid ;
}
.box2 {
  grid-row-start:1 ;
  grid-row-end: 2;
  grid-column-start: 2;
  grid-column-end: 3;
  border:1px solid ;
}
.box3 {
  grid-row-start:1 ;
  grid-row-end: 2;
  grid-column-start: 3;
  grid-column-end: 4;
  border:1px solid ;
}
.box4 {
  grid-row-start:2 ;
  grid-row-end: 3;
  grid-column-start: 1;
  grid-column-end: 2;
  border:1px solid ;
}
.box5 {
  grid-row-start:2 ;
  grid-row-end: 3;
  grid-column-start: 2;
  grid-column-end: 3;
  border:1px solid ;
  
}
.box6 {
  grid-row-start:2 ;
  grid-row-end: 3;
  grid-column-start: 3;
  grid-column-end: 4;
  border:1px solid ;
 
}

.box7 {
  grid-row-start:3;
  grid-row-end: 4;
  grid-column-start: 1;
  grid-column-end: 2;
  border:1px solid ;
  
  
}
.box8 {
  grid-row-start:3;
  grid-row-end: 4;
  grid-column-start: 2;
  grid-column-end: 3;
  border:1px solid ;
 
 
}
.box9 {  
  grid-row-start:3;
  grid-row-end: 4;
  grid-column-start: 3;
  grid-column-end: 4;
  
  border:1px solid ;
}

参考文章

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值