CSS grid学习(一)

一,兼容性

需要兼容IE10以下、ios 10.3 的Safari以下的话,该布局方式不适用。

 

 

 

 

 

 

 

 

 

 

                              数据来自:Can I use: https://www.caniuse.com/#search=grid

二、基本使用

<div class="grid-layout">
      <div class="item1">1</div>
      <div class="item2">2</div>
      <div class="item3">3</div>
</div>
.grid-layout{
    display: grid;
    grid-template-columns: 1fr 2fr 1fr;
   text-align: center;
 }
 .item1{ background: #f857b5;}
 .item2{ background: #fdffdc;}
 .item3{ background: #c5ecbe;}

效果图

 

// 使用grid布局
display: grid;     

// 指定网格列数为 3列( 有3个参数 )
// fr 代表自适应宽的单位。
grid-template-columns: 1fr 2fr 1fr; 

grid-template-columns代表列数的分配,行数分配是否可行呢?
.grid-layout{
    ...  
    grid-template-rows: 100px 20px;  
}

                       效果图

我们发现高度为120px,正好等于 grid-template-rows的值之和。且元素自动占第一行。


三、合并网格

 接下来我们试试将横、纵向的网格进行合并。

.item1{
    grid-row:1/span 2;  

    background: #f857b5; 
}
.item3{ 
    grid-row:1/span 2;
      grid-column: 3/4;
    background: #c5ecbe;
}
grid-rowgrid-row-startgrid-row-end 的缩写
grid-columngrid-column-startgrid-column-end 的缩写

                                                             效果图

 

在介绍 1/span 2 之前需要了解网格线是什么;
                                          网格线

grid-column:3/4; 代表从第 3 条纵线到第 4 条纵列的区域。
grid-row:span 1/2;代表从第 1 条横线到第 2 条横线的区域。中间多的 span 是一个属性值,代表合并网格的意思。
因此,item1能将第一横行的1 ~ 2列合并。item2能将第三列的 1 ~ 2行合并。 那么grid-column: 3/4; 是不是多余的呢?删掉之后,item2便会将其他元素挤下去。
仍有待研究。

现在可以布局以下界面啦:
<div class="grid-layout">
    <div class="nav">nav</div>
    <div class="aside">aside</div>
    <div class="main">main</div>
    <div class="footer">footer</div>
</div>
    .grid-layout {
      display: grid;
      grid-template-columns: 1fr 2fr 1fr;
      grid-template-rows: 100px 200px 80px;
    }
    .nav {
      background: #f857b5;
      grid-column: 1/span 2;
    }
    .aside {
      background: #fdffdc;
      grid-row: 1/span 2;
      grid-column: 3/4
    }
    .main {
      background: #c5ecbe;
      grid-column: 1/span 2
    }
    .footer {
      background: #f857b5;
      grid-column: 1/span 4
    }

 

 


转载于:https://www.cnblogs.com/miku561/p/10484914.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值