Responsive Web Design
  • Responsive Web Design 課程
  • 1 簡介
    • 1.1 講者簡介
    • 1.2 課程簡介
  • 2 版面概念解析
  • 3 Media Query
    • 3.1 媒體類型 Media Type
    • 3.2 媒體描述 Media Features
    • 3.3 練習
  • 4 Viewport
    • 4.1 Viewport 定義
    • 4.2 HTML Viewport Meta
  • 5 Bootstrap Grid System
    • 5.1 載入 Grid 相關 CSS
    • 5.2 Grid System
    • 5.3 breakpoint 練習
  • 6 Transition 轉場效果
    • 6.1 第一個 transition
    • 6.2 transition-property
    • 6.3 transition-duration
    • 6.4 transition-timing-function
    • 6.5 transition-delay
    • 6.6 transition 簡寫
    • 6.7 練習
  • 7 Grid 排版模式
    • 7.1 基本觀念及術語
    • 7.2 Grid Container
    • 7.3 Grid Items
    • 7.4 練習
  • 8 Animation 動畫效果
    • 8.1 第一個 animation
    • 8.2 關於 keyframes
    • 8.3 相同元素套用多個 animation
    • 8.4 animation-iteration-count
    • 8.5 animation-direction
    • 8.6 animation-delay
    • 8.7 animation-fill-mode
    • 8.8 animation-play-state
    • 8.9 animation-timing-function
    • 8.10 animation 簡寫
    • 8.11 練習
  • 9 練習
  • 10 RWD 作業
  • 11 手機連本機端網站
  • 12 參考資料
  • 13 補充:AOS
Powered by GitBook
On this page
  • 練習 1:Grid 排版模式的 Bug
  • 練習 2
  • 方式一:使用 Grid Line 來切
  • 方式二:使用命名方式
  1. 7 Grid 排版模式

7.4 練習

Previous7.3 Grid ItemsNext8 Animation 動畫效果

Last updated 1 year ago

練習 1:Grid 排版模式的 Bug

Grid 排版模式中,不允許斷行時,遇到的問題:當 Grid Items 中,裡面有元素設定了「不允許斷行(例:white-space: nowrap;)」,那麼 Grid Items 若沒有設定固定寬,那 Grid Items 的寬度就會被撐開。

解決方式:在 Grid Items 元素,設定 min-width: 0; 即可解決。

例:

練習 2

建立 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;
}

參考作法:

放背景圖: