7

CSS Grid 页面布局 - rxliuli blog

 3 years ago
source link: https://blog.rxliuli.com/p/51b60e96b1d542fda593fed9ae3bd9a3/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

grid 可视化布局, css grid 完整指南

早就知道 css grid 布局非常强大,但之前由于兼容性问题一直没有机会尝试,近来在生产环境中大规模尝试使用它,并尝试在 react 中进行封装:在 react 中优雅的使用 grid 实现页面布局,于此记录一下各种常见布局的 grid 实现。

附:grid 真的是一个非常强大自适应布局系统。

注:以下示例均默认引用了 Normalize.css

中后台基本布局

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<body>
<style>
html,
body,
.container {
height: 100%;
}

.container {
display: grid;
/* 定义行和列 */
grid-template-columns: 300px 1fr;
grid-template-rows: auto 1fr;
/* 定义布局的地图,未设定 area 则默认堆叠 */
grid-template-areas: "header header";
}
.header {
grid-area: header;
}
.container > * {
border: solid 1px red;
}
</style>
<div class="container">
<header class="header">header</header>
<section>sidebar</section>
<section>content</section>
</div>
</body>

中后台基本布局.html

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<body>
<style>
html,
body,
.container {
height: 100%;
}

.container {
display: grid;
/* 下面这行指定了
第一行按照内容自适应高度
第二行占有剩余高度
*/
grid-template-rows: auto 1fr;
}

.container > * {
border: solid 1px red;
}
</style>
<div class="container">
<header>header</header>
<section>content</section>
</div>
</body>

纵向布局.html

模拟 flex margin-left 或 margin-right

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<body>
<style>
.container {
display: grid;
/* 下面两行是关键 */
grid-template-columns: auto 1fr auto;
justify-items: end;
}

.container > * {
border: solid 1px red;
}
</style>
<header class="container">
<img src="https://picsum.photos/20" alt="logo" />
<div>用户名</div>
<div>消息</div>
</header>
</body>

模拟 flex margin-left 或 margin-right.html

根据内容自适应贴靠在一边

如下图展示一个图片列表

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<body>
<style>
.container {
display: grid;
grid-template-columns: auto auto;
/* 下面一行是关键,效果类似于 flex-start */
justify-content: start;
grid-gap: 8px;
}
</style>
<section class="container">
<img src="https://picsum.photos/seed/1/100" />
<img src="https://picsum.photos/seed/2/100" />
<img src="https://picsum.photos/seed/3/100" />
<img src="https://picsum.photos/seed/4/100" />
<img src="https://picsum.photos/seed/5/100" />
<img src="https://picsum.photos/seed/6/100" />
</section>
</body>

根据内容自适应贴靠在一边.html

嵌套的 grid 布局,外层处理横向布局,内层用以垂直对齐图片和文字。

纵向布局,内容区域自适应撑高容器到 100%。


Recommend

  • 90

    从零开始学 CSS Grid 布局

  • 64
    • 掘金 juejin.im 6 years ago
    • Cache

    【CSS】Grid 布局总结

    1. 前言 grid 布局是 css 中的一种新的布局方式,对盒子和盒子内容的位置及尺寸有很强的控制能力。与 flex 不同,flex 着重于单轴,而 grid 适应于多轴,下面就来做个简单的介绍。 flex 布局示意 grid 布局示意 2. 基本概念

  • 12

    在 react 中优雅的使用 grid 实现页面布局吾辈在做 electron 应用的时候遇到了这种布局,顶部是 header,然后是页面中的 toolbar,紧接着右边有一个侧边栏列表,左侧的内容又分为了两块区域。这种布局在中后台系统中应该很常见,但之前并未特别留意过...

  • 13
    • blog.rxliuli.com 4 years ago
    • Cache

    博客迁移 - rxliuli blog

    rxliuli blog 博客迁_ 2020年12月29日 早上 355 字 ...

  • 15
    • blog.rxliuli.com 4 years ago
    • Cache

    漫谈 反乌托邦 - rxliuli blog

    最近看完了 1984 这本小说,在之后也补了一下电影 Youtube 正版电影 一些设定令人惊奇 真理部:负责新闻、娱乐、教育、艺术 和平部:负责战争 有爱不:负责维持法律和秩序 富裕部:负...

  • 13
    • blog.rxliuli.com 4 years ago
    • Cache

    前端资源管理 - rxliuli blog

    本文最后更新于:2020年12月31日 上午 框架及社区react: 前端流行的 mvc 框架

  • 19
    • blog.rxliuli.com 4 years ago
    • Cache

    Android 常用 App 清单 - rxliuli blog

    该清单只是吾辈所用,使用工具因人而异,若是你对清单中的内容有何异议,可以在下方进行留言,吾辈会尽快阅读并回复! 附:列出的 Google Drive 链接是因为某些第三方 App 不在 Play Store 之中,而且在可预期的很长时间内都不可能在(Yout...

  • 20
    • blog.rxliuli.com 4 years ago
    • Cache

    JavaScript 中的 ES6 Proxy - rxliuli blog

    JavaScript 中的 ES6 Proxy Ja_ 2020年12月30日 下午 3.3k 字 ...

  • 6
    • blog.rxliuli.com 3 years ago
    • Cache

    FlexBox 布局入门 - rxliuli blog

    FlexBox 布局入门 FlexBox _ 2020年2月2日 晚上 6.2k 字 ...

  • 3
    • www.51cto.com 2 years ago
    • Cache

    图解 CSS Grid 布局

    大家好,我是 CUGGZ。Grid(网格)布局是最强大的 CSS 布局方案,用于构建二维布局。Grid 布局将页面划分成一个个网格,可以任意组合不同的网格,实现各种各样的布局。下面就来看看 CSS Grid 布局是如何使用的!

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK