如何使用 CSS Grid 布局 IOS11 新的控制中心

2019-12-04 09:56:46 浏览数 (1)

昨天 IOS11 就可以开始安装更新了,下图就是它带来的新的控制中心界面,是不是有点像带圆角的 Win10 风格?

设计的相互借鉴这里就不展开了,下面我们直接开局。

设计拆分网格

我们先来根据效果图拆格子,如下图,红线表示水平线,白线表示垂直线,这样就构成了我们的 4*4 的网格系统

当然按道理 4*4 的网格系统应该生成 16 个单元格,但是因为我们有格子的合并,所以一般来说格子小于或等于网格系统应该生成的个数。这里我们的单元格是 11 个,如下图:

Grid 布局

拆分完了,我们就正式开始写代码。

首先是我们的 HTML 元素,11 个 grid item:

代码语言:javascript复制
.function-list
  .function-item * 11

接下来就是我们的重点 CSS 布局了,代码如下:

代码语言:javascript复制
.function-list {
  display: grid;
  /* 定义行列 */
  grid-template-columns: 44px 44px 44px 44px;
  grid-template-rows: 98px 44px 44px 44px;

  justify-content: center;

  /* 定义间距 */
  grid-gap: 10px;
}
.function-item {
  background: rgba(0,0,0,.7);
  border-radius: 8px;

  /* 其他辅助样式 */
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* 1 和 7 跨两列 */
.function-item:nth-of-type(1),
.function-item:nth-of-type(7){
  grid-column: 1 / 3;
}

/* 2 跨两列 */
.function-item:nth-of-type(2) {
  grid-column: 3 / 5;
}


/* 5 跨两行 */
.function-item:nth-of-type(5) {
  grid-column: 3 / 4;
  grid-row: 2 / 4;
}

最终效果如下图(尺寸大小方面不一致,但思想大概如是):

0 人点赞