CSS 栅格

CSS 栅格layout逻辑

跟通过table划分不同的sessions不同, 栅格layout是通过CSS的方法换分不同的栅格, 所以under the hook, 画出来的栅格是等分的

比如
asymmetric-annotated

这个就不是等分了, 也就不能这么分
wild-cola-annotated
surdas biography in english

使用规则

.wrapper {
  display: grid;
}
怎么划分
  1. 指定大小
  .wrapper {
    display: grid;
    grid-template-columns: 25% 75%;
  }

5-FD959-C9-FFAD-4-A0-A-9-C12-9-C2-B74-DA1-B5-E

  1. 另外只用指定大小, 但是如果这个比例不能填充content的话, 就不会变小
 .wrapper {
    display: grid;
    grid-template-columns: 1fr 2fr;
  }

A6921-F71-BE2-D-4-E7-F-A79-E-58147-E723-DA8

  1. 指定其中一个大小, 其它按照比例
.wrapper {
    display: grid;
    grid-template-columns: 200px 2fr 1fr;
}
Implicit rows

这个跟flex-wrap类似

<style>
  .wrapper {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }
</style>

<div class="wrapper">
  <div class="item">1</div>
  <div class="item">2</div>
  <div class="item">3</div>
  <div class="item">4</div>
  <div class="item">5</div>
  <div class="item">6</div>
  <div class="item">7</div>
</div>

3393-DD6-B-55-D8-43-ED-9112-C04904-C520-BB

Explicit rows

这个就是把每一行的固定了

<style>
  .wrapper {
    display: grid;
    grid-template-rows: 64px 1fr 100px;
    min-height: 100%;
  }
</style>

<div class="wrapper">
  <header>My Website</header>
  <main>Content goes here</main>
  <footer>Copyright notice</footer>
</div>

FAFF2-B6-E-CF46-429-B-B993-6-D2-EC2-E7-CA30

超出范围的item
<style>
  .wrapper {
    display: grid;
    grid-template-rows: 1fr 1fr 1fr;
    height: 100vh;
  }
</style>

<div class="wrapper">
  <div class="item">1</div>
  <div class="item">2</div>
  <div class="item">3</div>
  <div class="item">4</div>
</div>

2300873-E-A1-CE-4884-9-CDF-1-DE44323-A446

Gaps
<style>
  .wrapper {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
  }
</style>

<div class="wrapper">
  <div class="item">1</div>
  <div class="item">2</div>
  <div class="item">3</div>
  <div class="item">4</div>
  <div class="item">5</div>
  <div class="item">6</div>
  <div class="item">7</div>
</div>

4-C8-EA89-C-F6-D1-4-E59-8-A4-F-BFF39-D9324-C4

repeat
.calendar {
  grid-template-columns:
    250px 1fr 1fr 1fr 1fr 1fr;
}

weekly-planner-cols

Alignment

justify-content

对column的alignment

<style>
  .wrapper {
    display: grid;
    justify-content: center;
  }
</style>

<div class="wrapper">
  <header>Hello World</header>
  <section>Stuff here</section>
  <footer>Copyright notice</footer>
</div>

CD436-A23-3-F40-4548-838-A-8-D1960-BFA1-CD

justify-items

对item本身的调整

<style>
  .wrapper {
    display: grid;
    justify-items: center;
  }
</style>

<div class="wrapper">
  <header>Hello World</header>
  <section>Stuff here</section>
  <footer>Copyright notice</footer>
</div>

ED6-E0-AA9-5-C06-4-D96-B865-CC58-DD231-B76

align-content

对row的alignment

<style>
  .wrapper {
    display: grid;
    align-content: space-between;
    height: 300px;
  }
</style>

<div class="wrapper">
  <header>Hello World</header>
  <section>Stuff here</section>
  <footer>Copyright notice</footer>
</div>

B802-C441-4-CE4-4-C3-D-BBFE-C2-EA7-CCDC1-DC

<style>
  .wrapper {
    display: grid;
    align-content: center;
    height: 300px;
  }
</style>

<div class="wrapper">
  <header>Hello World</header>
  <section>Stuff here</section>
  <footer>Copyright notice</footer>
</div>

F8-AACCB3-51-CB-4834-8-F2-F-F78-B3157-D26-E

align-items

就是对于item的alignment

<style>
  .wrapper {
    display: grid;
    height: 300px;
    align-items: center;
    border: 2px solid pink;
  }
</style>

<div class="wrapper">
  <header>Hello World</header>
  <section>Stuff here</section>
  <footer>Copyright notice</footer>
</div>

B1-A7-E704-653-F-4503-A4-CE-36-AEB4153-D79

Self-alignment

针对单个的alignment
4-EB9-CEC2-E187-4-E8-F-91-B4-178-E5-DDE19-E1

Grid Areas

通过grid-template-areas and grid-area 设计layout

<style>
.wrapper {
  display: grid;
  grid-template-areas:
    'sidebar header'
    'sidebar main-content';
  grid-template-columns: 250px 1fr;
  grid-template-rows: 80px 2fr;
}

aside {
  grid-area: sidebar;
}
header {
  grid-area: header;
}
main {
  grid-area: main-content;
}
</style>

<div class="wrapper">
  <aside>Aside</aside>
  <header>Header</header>
  <main>Main</main>
</div>

2094-D676-26-B3-4090-9286-4-FA690-A5-D5-C9

Fluid Grids

根据viewport的小换行

<style>
  .grid {
    display: grid;
    gap: 16px;
    grid-template-columns:
      repeat(auto-fill, minmax(150px, 1fr));
  }
</style>

<main class="grid">
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
</main>
auto-fill vs. auto-fit

差别在于是否拉伸

auto-fill
B1-C744-C8-DF44-47-B7-B618-0044266-C15-B1

auto-fit
8-E516323-3760-4120-AB1-D-9-AA8-B78-C59-F0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值