Skip to content

VisionYi/simple-grid-system

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Simple Grid System

這是以 CSS Flexbox 為基礎所建構而成的網格系統,簡易且直覺的使用方式,讓網頁在設計排版上可以輕鬆快速地完成。

如果你覺得現今流行的 CSS 框架中的網格設計,在使用上必須加入過多的樣式名稱是很麻煩的事,或是不想為每一個欄位都去思考排版方式,那你就應該要來試試這款 Simple Grid System。

# View on demo page

Features

  • 擁有 12、16、10 格欄位的網格系統
  • 支援 RWD 響應式網頁設計 - 電腦桌面、平板、手機 3 種螢幕尺寸上自動堆疊與縮放
  • 欄位能夠自動堆疊,自動產生網格中的間隙距離,也可以手動移除
  • 網格設計上的概念 :
    • 只包含常用且直覺的排版方式
    • 不需煩惱每一格或每一欄位在不同螢幕尺寸下的變化與差異
    • 加上 讓欄位照比例自動縮放(填滿剩餘空間) 的功能,可以讓排版方式更有彈性
  • 附加其他功能 :
    • 與 CSS 框架 Bootstrap 4.x 版類似的 container 樣式名稱
    • 響應式設計 - 區塊的顯示與隱藏
    • 排版上輔助用的 classes helpers

Browser Support

IE Chrome Firefox Opera Safari Firefox OS Android
v11.0+ ✔ v29.0+ ✔ v22.0+ ✔ v12.1+ ✔ v9.0+ ✔ v1.1+ ✔ v4.4+ ✔

Usage

直接使用 dist 資料夾裡的 simple-grid.min.css 這個已被壓縮最小化的檔案,此版本有使用 Autoprefixer 加入 CSS prefixes,可以支援更多瀏覽器的使用。

Include the CSS file in your page

<link rel="stylesheet" href="simple-grid.min.css" type="text/css">

How to use CSS classes

CSS 樣式種類目錄

1. grid & col 系列

基本使用 gridcol 製作最簡易的網格,col 預設的欄位寬度都是 100%,如果想自訂欄位的寬度或隨著內容而變化,可以使用 col-auto 預設欄位寬度為 auto

  • grid
  • colcol-auto

基本範例 :

<div class="grid">
  <div class="col"></div>
  <div class="col-auto"></div>
</div>

另外也擁有 12、16、10 欄位的 3 種網格,使用 grid-* 表示網格的種類,使用 col-* 表示此欄位佔據的格數比例

  • grid-10grid-12grid-16
  • grid-10 > col-1 ~ col-10
  • grid-12 > col-1 ~ col-12
  • grid-16 > col-1 ~ col-16

基本範例 :

<div class="grid-12">
  <div class="col-6">Two</div>
  <div class="col-6">Column</div>
</div>

2. offset 系列

需要推移欄位或製造空的欄位時,可以在 (col) 層加入 offset-*,對應不同的網格種類

  • grid-10 > offset-1 ~ offset-9
  • grid-12 > offset-1 ~ offset-11
  • grid-16 > offset-1 ~ offset-15

基本範例 :

<div class="grid-12">
  <div class="col-4 offset-2"></div>
</div>

3. 響應式 desktop、tablet、mobile 系列

支持 RWD 響應式網頁設計,可以在 (grid) 層加入 mobile-*tablet-*desktop-*,當螢幕尺寸大小進入不同的版面時,會限制每一行的欄位格數而產生堆疊,改變每個欄位的寬度比例

樣式名稱 使用的裝置 當螢幕尺寸 ... 改變寬度比例
desktop-1 ~ desktop-8 電腦桌面 (大螢幕) ≥ 992px
tablet-1 ~ tablet-6 平板 (中螢幕) < 992px && ≥ 768px
mobile-1 ~ mobile-4 行動裝置 (手機) < 768px

# 特別說明觸發時的情況 :

  • 網格內的每個欄位都會改成等寬的比例,例如: mobile-2 欄位的寬都會改成 50%,每一行只會有 2 個等寬的欄位
  • 會把內部所有欄位的 offset-* 都消除掉

基本範例 :

<div class="grid desktop-3 tablet-2 mobile-1">
  ...
</div>

4. flexible 系列

使欄位彈性伸縮,自動調整大小進而填滿剩餘空間,可以在 (col) 層加入 flexible,也有搭配響應式設計的 flexible-* 種類

樣式名稱 使用的裝置 當螢幕尺寸 ... 觸發自動調整大小效果
flexible 全部尺寸 ---------
flexible-tablet 平板(中螢幕)以下 < 992px
flexible-mobile 行動裝置(手機) < 768px

# 特別說明觸發時的情況 :

  • 當在同個網格中有兩欄位以上都觸發效果時

    • colcol-auto 搭配使用下,欄位會以 1:1 的比例去填滿剩餘的空間
    • col-* 系列 搭配使用下,欄位會以 * : * 數字的比例去填滿剩餘的空間
  • 會把內部所有欄位的 offset-* 都消除掉

  • 當內容無法再縮小或文字無法再換行時,會自動將欄位跳至下一行

基本範例 :

<div class="grid-12">
  <div class="col-3 flexible"></div>
  <div class="col-6 flexible"></div>
</div>

5. align 系列

將網格中的所有欄位對齊、分配、集中於一行中的位置,可以在 (grid) 層加入 align-*

樣式名稱 將所有欄位 ...
align-center 集中於中間
align-right 集中於右側
align-space-around 平均分配於一行中
align-space-between 散開分配於一行中
align-top 靠上對齊
align-middle 置中對齊
align-bottom 靠下對齊

基本範例 :

<div class="grid-12 align-center">
  ...
</div>

6. order 系列

想在不同螢幕尺寸下排序欄位順序,可以在 (col) 層加入 order-first-*order-last-*

  • order-first-* 將欄位移至網格中最前的位置
  • order-last-* 將欄位移至網格中最後的位置
樣式名稱 使用的裝置 當螢幕尺寸 ... 排序移動位置
order-first-desktop order-last-desktop 電腦桌面 (大螢幕) ≥ 992px
order-first-tablet order-last-tablet 平板 (中螢幕) < 992px && ≥ 768px
order-first-mobile order-last-mobile 行動裝置 (手機) < 768px

基本範例 :

<div class="grid-12">
  <div class="col-4 order-last-mobile"></div>
  <div class="col-4"></div>
  <div class="col-4"></div>
</div>

7. hidden、show-only 系列

搭配響應式設計 - 可以使區塊元素 隱藏或顯示,使用以下 2 種類型

  • hidden-* 在指定的螢幕尺寸下時隱藏元素
  • show-only-* 在指定的螢幕尺寸下時顯示元素,其他情況下都為隱藏
樣式名稱 使用的裝置 當螢幕尺寸 ... 隱藏元素
hidden-desktop 電腦桌面(大螢幕) ≥ 992px
hidden-tablet 平板(中螢幕) ≥ 768px && < 992px
hidden-mobile 行動裝置(手機) < 768px
hidden-tablet-desktop 平板(中螢幕)以上 ≥ 768px
hidden-tablet-mobile 平板(中螢幕)以下 < 992px
樣式名稱 使用的裝置 當螢幕尺寸 ... 才顯示元素
show-only-desktop 電腦桌面(大螢幕) ≥ 992px
show-only-tablet 平板(中螢幕) ≥ 768px && < 992px
show-only-mobile 行動裝置(手機) < 768px

8. no-gaps

欄位彼此之間的間隙距離預設為 15px,如果想要消除它,可以在 (grid) 層加入 no-gaps

基本範例 :

<div class="grid-12 no-gaps">
  ...
</div>

9. classes helpers 輔助的樣式名稱

  • w-100

    • CSS 內容為 width: 100% !important
    • 用於強制中斷欄位跳到新的一行,常與分配、集中功能一起搭配使用
    • 可以直接加入在欄位與欄位之間單獨成一行
  • ml-automr-automx-auto

    • CSS 內容分別為 margin-left: auto !importantmargin-right: auto !important、前者兩個的結合
    • 主要加入在 (col) 層
    • 用於把欄位向右推移或向左推移

10. 其他 - container 系列

容器 - 分為一般型流動型,使用方式與 CSS 框架 Bootstrap v4.x 的 container 是類似的

  • container 一般型
  • container-fluid 流動型

# 看更多的 Demo 範例請詳見: View on demo page

Updates

See Change Log

Todo List

  • 使用者可自行修改 gaps 間距 & 容器外邊寬度的大小,使用 CSS Variables
  • example page UI 介面可以再優化

License

MIT