grid 布局案例之grid-template-areas和grid-column的使用

grid 布局案例

概述

分别使用grid-template-areas和grid-column两种方法进行布局。

效果图

在这里插入图片描述

使用grid-template-areas进行布局

完整代码(vue+scss版)

<template>
  <div class="content">
    <header class="item header">header</header>
    <aside class="item left">left</aside>
    <section class="item main">main</section>
    <section class="item right">right</section>
    <footer class="item footer">footer</footer>
  </div>
</template>

<script>
export default {
  // layout:'front',
};
</script>

<style lang="scss" scoped>
.content {
  display: grid;
  height: 100vh;
  grid-template-columns: 100px auto 200px;
  grid-template-rows: 100px auto 100px;
  gap: 10px;
  grid-template-areas:
    "header header header"
    "left main right"
    "footer footer footer";
  .item {
    display: flex;
    justify-content: center;
    align-items: center;
  }
  .header {
    background-color: beige;
    grid-area: header;
  }
  .left {
    background-color: antiquewhite;
  }
  .main {
    background-color: rgb(209, 163, 103);
    grid-area: main;
  }
  .right {
    background-color: rgb(230, 210, 184);
    grid-area: right;
  }
  .footer {
    background-color: rgb(223, 204, 179);
    grid-area: footer;
  }
}
</style>

使用合并单元格grid-column进行布局

完整代码(vue+scss版)

<template>
  <div class="content">
    <header class="item header">header</header>
    <aside class="item left">left</aside>
    <section class="item main">main</section>
    <section class="item right">right</section>
    <footer class="item footer">footer</footer>
  </div>
</template>

<script>
export default {
  // layout:'front',
};
</script>

<style lang="scss" scoped>
.content {
  display: grid;
  height: 100vh;
  grid-template-columns: 100px auto 200px;
  grid-template-rows: 100px auto 100px;
  gap: 10px;
  .item {
    display: flex;
    justify-content: center;
    align-items: center;
  }
  .header {
    background-color: beige;
    grid-column: span 3;
  }
  .left {
    background-color: antiquewhite;
  }
  .main {
    background-color: rgb(209, 163, 103);
  }
  .right {
    background-color: rgb(230, 210, 184);
  }
  .footer {
    background-color: rgb(223, 204, 179);
    grid-column: span 3;
  }
}
</style>

  • 15
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
grid-template属性用于定义一个网格容器的行和列的数量、大小和形状。 语法: ``` grid-template: none | <grid-template-rows> / <grid-template-columns> | <grid-template-areas> | <grid-auto-rows> / <grid-auto-columns> | <grid-auto-flow>; ``` 属性值: - none:表示没有行或列的定义,也没有任何单元格。 - <grid-template-rows>:定义网格容器的行大小和行数,可以使用长度值、百分比和fr单位。 - <grid-template-columns>:定义网格容器的列大小和列数,可以使用长度值、百分比和fr单位。 - <grid-template-areas>:定义网格容器中的区域,可以使用字符串和句号表示单元格。 - <grid-auto-rows>:定义自动创建的网格行的大小。 - <grid-auto-columns>:定义自动创建的网格列的大小。 - <grid-auto-flow>:定义自动布局算法。可以是row(将单元格从左到右、从上到下排列)、column(将单元格从上到下、从左到右排列)或dense(更紧密地填充网格)。 示例: ``` .container { display: grid; grid-template-columns: 1fr 1fr 1fr; /* 3列相等宽度 */ grid-template-rows: 100px 200px; /* 2行,第一行高100px,第二行高200px */ grid-template-areas: "header header header" "main sidebar sidebar" "footer footer footer"; /* 定义区域 */ } ``` 上述示例定义了一个包含3列和2行的网格容器,其中第一行高100px,第二行高200px,每列宽度相等。网格容器中定义了3个区域:header、main和sidebar,以及一个名为footer的区域,它们组成一个3×3的网格。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值