🖍️
CSS 排版及動畫效果
  • CSS 排版及動畫效果
  • 1. 簡介
    • 1.1 講者簡介
    • 1.2 課程簡介
    • 1.3 開發工具簡介
  • 2. 棋盤式排版模式 Grid
    • 2.1 基本觀念及術語
    • 2.2 Grid 排版 - Container
    • 2.3 Grid 排版 - Items
  • 3. 多欄排版模式 Column
  • 4. 轉場效果 transition
    • 4.1 第一個 transition
    • 4.2 屬性 transition-property
    • 4.3 期間 transition-duration
    • 4.4 漸變函式 transition-timing-function
    • 4.5 延遲 transition-delay
    • 4.6 transition 縮寫
    • 4.7 練習
  • 5. 動畫效果 animation
    • 5.1 第一個 animation
    • 5.2 關於 keyframes
    • 5.3 同個元素套用多個 animation
    • 5.4 次數 animation-iteration-count
    • 5.5 方向 animation-direction
    • 5.6 延遲 animation-delay
    • 5.7 填滿模式 animation-fill-mode
    • 5.8 播放狀態 animation-play-state
    • 5.9 漸變函式 animation-timing-function
    • 5.10 animation 縮寫
    • 5.11 補充:動畫效果事件(Animation Event)
    • 5.12 練習
  • 6. 作業
  • 7. 第三方動畫效果套件
    • 7.1 Animate.css
    • 7.2 AOS
    • 7.3 CSS Loader
  • 8. 大量練習
  • 9. 其它及參考資料
Powered by GitBook
On this page
  • grid-column
  • grid-row
  • grid-area
  • 排列相關
  • justify-self
  • align-self
  • place-self
  • 練習
  • 方式一:使用 Grid Line 來切
  • 方式二:使用命名方式
  1. 2. 棋盤式排版模式 Grid

2.3 Grid 排版 - Items

Grid Items 相關屬性。

grid-column

  • 數值指的是 Grid Column Line 的意思。

  • span 2:指的是擴展兩個欄的意思。

/* 寫法一 */
grid-column: 1 / 3;

/* 寫法二:使用 line 的命名 */
/*
使用 Grid Line 的名稱,假設在 Grid Container 有設定:
grid-template-columns: [a] auto [b] auto [c] auto [d];
*/
grid-column: a / c;

/* 寫法三 */
grid-column-start: 1;
grid-column-end: 3;

/* 寫法四 */
grid-column: 1 / span 2;

例:

grid-row

  • 數值指的是 Grid Row Line 的意思。

  • span 2:指的是擴展兩個欄的意思。

/* 寫法一 */
grid-row: 1 / 4;

/* 寫法二:使用 line 的命名 */
/*
使用 Grid Line 的名稱,假設在 Grid Container 有設定:
grid-template-rows: [a] auto [b] auto [c] auto [d];
*/
grid-row: a / d;

/* 寫法三 */
grid-row-start: 1;
grid-row-end: 4;

/* 寫法四 */
grid-row: 1 / span 3;

例:

grid-area

原來九個欄位如下:

將 4 的那個欄位,擴展到 4、5、7、8,變成如下:

/* 寫法一 */
grid-row-start: 2;
grid-column-start: 1;
  
grid-row-end: 4;
grid-column-end: 3;

/* 寫法二 */
grid-area: 2 / 1 / 4 / 3;

/* 寫法三 */
grid-area: 2 / 1 / span 2 / span  2;

例 1:使用 Grid Line 來設定範圍:

例 2:使用 grid-area 來將欄位指定位置(例:將 1 和 9 對調):

例 3: grid-area 也可以用來設定這個 Item 的名稱,然後就可以在 Grid Container 中使用 grid-template-areas 中直接指定名稱。

div.item{
  grid-area: header;
}

範例請參考 grid-template-areas 屬性。

排列相關

justify-self

請參考 justify-items。

align-self

請參考 align-items。

place-self

請參考 place-items。

是 justify-self 和 align-self 的簡寫形式,格式如下:

place-self: <align-self> <justify-self>;

練習

建立 grid_practice.html 來練習,請貼上以下原始碼:

<div class="grid_container">
  <header class="grid_item">
    這是 header
  </header>
  <aside class="grid_item">
    這是 aside
  </aside>
  <main class="grid_item">
    這是 main
  </main>
  <section class="grid_item">
    這是 section
  </section>
  <footer class="grid_item">
    這是 footer
  </footer>
</div>
div.grid_container{
  border: 1px solid red;
  padding: 10px;
  display: grid;
  gap: 10px;
  grid-template-columns: 1fr 2fr 1fr;
}
div.grid_container .grid_item{
  border: 1px solid blue;
}

使用 Grid 排版模式,變成如下圖佈局:

方式一:使用 Grid Line 來切

例如 header.grid_item:

div.grid_container header.grid_item{
  grid-column: 1 / 3;
}

參考作法:

方式二:使用命名方式

給定各個 Item 命名如下:

div.grid_container header.grid_item{
  grid-area: header;
}
div.grid_container aside.grid_item{
  grid-area: aside;
}
div.grid_container main.grid_item{
  grid-area: main;
}
div.grid_container section.grid_item{
  grid-area: section;
}
div.grid_container footer.grid_item{
  grid-area: footer;
}

參考作法:

Previous2.2 Grid 排版 - ContainerNext3. 多欄排版模式 Column

Last updated 1 year ago