网格布局常用属性解析

1.网格布局采用行和列的思想进行区域划分,可以排除一切其他细节的干扰因素.

2.容器和子项

网格布局和弹性布局类似,都是采用容器和子项构成.通过为元素指display:grid或display:inline-grid可以创建一个网格容器.如下例:.parent变为网格容器

 <style>
        .parent{
            display: grid;
        }
 </style>

 <div class="parent">
    <div class="child">A</div>
    <div class="child">B</div>
    <div class="child">C</div>
    <div class="child">D</div>
    <div class="child">E</div>
 </div>

3.行与列

3.1定义行

没有设定行的情况下,所有的行都会平均分配容器,且每行默认占整宽

<style>
        .parent{
            display: grid;
            margin: 100px auto;
            width: 400px;
            height: 200px;
            border: 1px solid black;
        }
        .child{
            border: 1px solid black;
        }
</style>

 修改每行占比,可在容器指定grid-template-rows,类型可以为百分比,也可以为px.

 如果给的数值多次重复,可以用rpeat来批量生成,效果一样的repeat(重复的次数,重复的值)

 3.2定义列

定义列我们可以使用grid-template-columns,这个属性我们一般更加常用

 除了百度比,我们还可以使用fr来表示每列所占的份数,效果和上面一样,类似弹性布局的flex-grow

3.3定义方式网格模板

对于有相对长度和绝对长度的长和列,我们可以同时使用绝对单位和相对单位.

 若想让第2列占满,使用单位fr

 

 3.4调整网格间距

间距可以在视觉上分割元素,让区域划分更加明确,默认是没有间距的.

 

 也可以简写为grid-gap

  3.5调整网格中的区域(重点)

以下面的例子来说,布局就像组合排序一样,搭建一些骨架非常方便.

  <style>
        .parent {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            grid-gap: 5px;
            grid-template-areas: 
            'a a a'
            'b . c' /* .表示空占位 */
            'd e f'
            'g h h'
            'i i i';
            margin: 100px auto;
            width: 600px;
            height: 200px;
            border: 1px solid black;
        }

        .child {
            border: 1px solid black;
            background-color: #eee;
        }
        /* 命名 */
        #a{grid-area: a;}
        #b{grid-area: b;}
        #c{grid-area: c;}
        #d{grid-area: d;}
        #e{grid-area: e;}
        #f{grid-area: f;}
        #g{grid-area: g;}
        #h{grid-area: h;}
        #i{grid-area: i;}
    </style>

<div class="parent">
        <!-- 设置id -->
        <div class="child" id="a">A</div>
        <div class="child" id="b">B</div>
        <div class="child" id="c">C</div>
        <div class="child" id="d">D</div>
        <div class="child" id="e">E</div>
        <div class="child" id="f">F</div>
        <div class="child" id="g">G</div>
        <div class="child" id="h">H</div>
        <div class="child" id="i">I</div>
</div>

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卷小白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值