注意,我们使用grid-column-end: 5,值5指向列线 。第四列在网格的第五行结束 。grid-column-start和grid-column-end值是指网格线 。
如果你觉得网格线的值让人困惑,你也可以使用span,下面的效果与上面一样:
.item:nth-of-type(6) { grid-column-start: 3; grid-column-end: span 2;}对于span 2,指定div占用网格中的两个插槽 。现在,假设要扩展第二列填充下面的空白区域 。我们也可以通过grid-column-start属性轻松地做到这一点 。
.item:nth-of-type(2) { grid-row-start: span 2;}我们使用span和grid-row-start来指定我们想要占据两个插槽 。

文章插图
如上所见,我们已经能够使用少量的CSS网格属性来构建非常复杂的布局 。
有效地使用 grid-templates现在来看看grid-templates,在本节中,我们将讨论如何为不同的屏幕大小创建不同的布局 。
首先,还是先来一段 dom 结构:
<div class="container"> <header>header</header> <aside>Left</aside> <section>Section</section> <aside>Right</aside> <footer>Footer</footer></div>接着,添加一些样式:`` .container { display: grid; height: 100vh; grid-gap: 10px; }
.container > * { background: coral; display: flex; justify-content: center; align-items: center; }` ``
我们给元素添加了背景色 。从上面的代码中可以看到,我们也使用了flex属性 。我们可以将flex和grid结合在一起 。在这个特殊的例子中,我们使用flex属性中心对齐内容 。

文章插图
【使用网络构建复杂布局超实用的技巧,赶紧收藏吧】对于移动端,我们希望section在header下面,right 在 section下面,我们可以使用网格区域来完成 。首先,我们定义网格区域:
.container { display: grid; height: 100vh; grid-gap: 10px; grid-template-areas: "header" "section" "right" "left" "footer"}aside:nth-of-type(1) { grid-area: left;}aside:nth-of-type(2) { grid-area: right;}section { grid-area: section;}footer { grid-area: footer;}header { grid-area: header;}在 grid-template-areas 中可以看到,我们先有header ,然后是section,然后是right,最后是left 。此外,我们希望我们的section比 left 和 right都大点 。为了实现这一点,我们可以使用rid-template-rows属性.container { display: grid; height: 100vh; grid-gap: 10px; grid-template-areas: "header" "section" "right" "left" "footer"; grid-template-rows: 1fr 6fr 2fr 2fr 1fr;}少了一张图片
文章插图
我们可以根据需要设置移动端的视图,接下我们使用媒体查询来适配一下大屏幕:
@media (min-width: 500px) { .container { grid-template-areas: "header header header" "left section right" "footer footer right"; grid-template-rows: 1fr 6fr 1fr; grid-template-columns: 1fr 6fr 1fr; }}如何使用minmax函数动态跟踪元素的大小假设我们有两列,它们均匀地占据了屏幕上的可用空间 。通过使用 grid-template-columns,我们可以很容易地做到这一点 。但是,如果我们想要其中一个在200px到500px之间呢?我们的列可以适应不同的屏幕尺寸,但其中一个永远不会大于500px或小于200px 。对于这些类型的场景,我们使用minmax函数 。让我们来看看它的实际效果 。
<div class="container"> <div class="one">One</div> <div class="two">Two</div></div>
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 100光口汇聚交换机--网络摄像机光纤传输组网
- 在 Ubuntu 和其他 Linux 发行版上使用 Yarn
- 使用Node.js搭建一个简单的http服务器
- C#窗体Winform,如何嵌入图片添加图片,使用图片资源?
- Lombok入门使用教程及其优缺点详解
- 一文搞懂 Traefik2.1 的使用
- 古剑奇谭网络版nga 古剑奇谭网络版吧贴吧
- 汽车变速箱该如何使用与保养
- 使用通脉养心丸有哪些注意事项?
- 使用sqoop在MySQL、hadoop、hive间同步数据
