自主練習專案「日本文學經典50」技術記錄與反省

總結

微型專案「日本文學經典 50」是在閱讀完《一生必讀的 50 本日本文學名著》後,覺得書末一口氣展示 50 本經典的排版讓人印象深刻,決定以該圖為範本練習 CSS grid 排版

demo 1

成品

純網頁展示版:點我 demo 2

版本與環境

Google Chrome: 89.0.4389.90 (Official Build) (64-bit)
os: Windows_NT 10.0.18363 win32 x64

JS 內容

JS 技術記錄

將資料與 HTML 分離

從資料庫讀取資料

什麼是 ajax

(00:39) We can talk to the outside world and make changes on our website, have something happen that interact with the server, but maybe it doesn’t reload our entire page.

(00:50) ajax allows us to do that.

ajax 可以在「不重新載入整個網頁」的情況下,向 server side 索取資料後,配合 JavaScript 修改 DOM 的內容(或樣式);在本專案的應用情境則是:讀取 server 上的 csv 檔案內容後,把檔案內容根據一定的規則放入適當的 DOM 物件中。

HTML 內容

因為把文字資料與 HTML 區隔開了,所以 HTML 原始碼挺空曠的:

CSS 內容

基本設定

三欄版面

四欄與五欄排版主要不同的內容在於 grid-template-areas 的佈局,以及偶數行反轉排列的.c-$不一樣

CSS 技術記錄

<input>搭配<label>控制全部的蓋版元素

發想:既然可以透過純 CSS 做出一鍵切換「亮色/暗色模式」的話,想要「一鍵開啟全部的蓋板物件」的話,把 input:checked 後執行的「filter: invert()」換成「修改蓋板物件的 top 位置」就好

repeat-y 處理大範圍背景

發想:

Sass 相關筆記

反省

參考文件