返回

图文详解,CSS Grid Layout 亲手改造 GitHub 贡献日历

前端

在学习 CSS Grid Layout 时,我发现内化所有新概念和术语的最好方法就是做各种项目。今天,我们就来尝试用 CSS Grid Layout 来重新构建 GitHub 的 Contribution 日历。

1. 准备工作

首先,我们需要准备一些东西:

  • 一个文本编辑器(比如记事本++)
  • 一个浏览器(比如 Chrome 或 Firefox)
  • GitHub 账户
  • 一些耐心

2. 创建一个新的 HTML 文件

在文本编辑器中,创建一个新的 HTML 文件,并将其命名为“contribution-graph.html”。在文件中,输入以下代码:

<!DOCTYPE html>
<html>
<head>
  
  <link rel="stylesheet" href="style.css">
</head>
<body>
  <div id="graph"></div>

  <script src="script.js"></script>
</body>
</html>

3. 创建一个新的 CSS 文件

在文本编辑器中,创建一个新的 CSS 文件,并将其命名为“style.css”。在文件中,输入以下代码:

#graph {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  grid-template-rows: repeat(5, 1fr);
  gap: 1px;
  background-color: #f5f5f5;
}

.day {
  width: 100%;
  height: 100%;
  background-color: #ffffff;
}

.day--contribution {
  background-color: #0088cc;
}

4. 创建一个新的 JavaScript 文件

在文本编辑器中,创建一个新的 JavaScript 文件,并将其命名为“script.js”。在文件中,输入以下代码:

const graph = document.getElementById('graph');

const days = [
  { date: '2023-01-01', contribution: true },
  { date: '2023-01-02', contribution: false },
  { date: '2023-01-03', contribution: true },
  { date: '2023-01-04', contribution: false },
  { date: '2023-01-05', contribution: true },
  // ...
];

days.forEach((day) => {
  const div = document.createElement('div');
  div.classList.add('day');

  if (day.contribution) {
    div.classList.add('day--contribution');
  }

  graph.appendChild(div);
});

5. 运行代码

现在,我们可以运行代码了。在浏览器中,打开“contribution-graph.html”文件。你应该会看到一个 5 行 7 列的日历,其中有些天是绿色的,有些天是白色的。绿色的一天表示你在这天有贡献,而白色的一天表示你在这天没有贡献。

6. 自定义你的日历

你可以根据自己的需要来自定义日历。例如,你可以改变日历的颜色、字体和大小。你还可以添加一些交互性,比如当用户将鼠标悬停在某一天上时,显示该天的贡献信息。

7. 发布你的日历

当你对你的日历感到满意时,你就可以将其发布到网上。你可以将其上传到 GitHub Pages 或其他托管平台。然后,你就可以与他人分享你的日历了。

希望这篇教程对你有帮助。如果你有任何问题,请随时留言。