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 介面 hamburger icon
  • 2 導覽列縮合
  • 3 內容圖片佔滿版及寬高比
  • 4 行動版呈現左右滑動
  • 5 Youtube iframe 影片 RWD

9 練習

Previous8.11 練習Next10 RWD 作業

Last updated 1 year ago

1 介面 hamburger icon

檔名建議:btn_hamburger.html

例如以下 apple 行動版官網,影片示意:

提供 html:

<button type="button" id="btn_hamburger"></button>

切換 class 的 JS 程式:

let btn_hamburger_el = document.getElementById("btn_hamburger");
btn_hamburger_el.addEventListener("click", function(){
  this.classList.toggle("-on")
});

參考作法:

2 導覽列縮合

檔名建議:nav_switch.html

提供 html:

<button type="button" id="btn_hamburger">導覽列縮合按鈕</button>

<nav class="main_nav" id="nav_block">
  <ul class="nav_list">
    <li><a href="#">首頁</a></li>
    <li><a href="#">關於我們</a></li>
    <li><a href="#">分類頁</a></li>
  </ul>
</nav>

提供 JS:

var btn_switch = document.getElementById("btn_hamburger");
btn_switch.addEventListener("click", function(){
  var nav_el = document.getElementById("nav_block");
  nav_el.classList.toggle("-on");
});

參考作法:

漸進式的展開縮合,因為會用到 JS,單靠 CSS 無法做到,故同學學完 JS 之後,可再來研究:

3 內容圖片佔滿版及寬高比

檔名建議:aspect_ratio.html

提供 HTML 如下:

<div class="img_block">
  <img src="https://picsum.photos/id/867/2000/300">
</div>
  • 當螢幕寬度小於等於 767.98px 以下時,圖片要在 div.img_block 區塊水平方向、垂直方向皆置中;且 div.img_block 需佔螢幕的滿版,且寬高比需是 2:1。

  • 請參考下方 CodePen 的畫面結果,實作看看。

使用 aspect-ratio 來做一個元素的寬高比,例如寬高比 2:1 :

div.block{
  width: 150px;
  aspect-ratio: 2 / 1; /* height 就會是 75px */
}

參考作法:

4 行動版呈現左右滑動

檔名建議:mobile_slide.html

提供 html 如下:

<div class="list_container">
  <ul class="ul_list">
    <li class="item">
      <div class="item_block">
        <h1>標題1</h1>
        <img src="https://picsum.photos/id/500/200/100">
      </div>
    </li>
    <li class="item">
      <div class="item_block">
        <h1>標題2</h1>
        <img src="https://picsum.photos/id/500/200/100">
      </div>
    </li>
    <li class="item">
      <div class="item_block">
        <h1>標題3</h1>
        <img src="https://picsum.photos/id/500/200/100">
      </div>
    </li>
    <li class="item">
      <div class="item_block">
        <h1>標題4</h1>
        <img src="https://picsum.photos/id/500/200/100">
      </div>
    </li>
    <li class="item">
      <div class="item_block">
        <h1>標題5</h1>
        <img src="https://picsum.photos/id/500/200/100">
      </div>
    </li>
    <li class="item">
      <div class="item_block">
        <h1>標題6</h1>
        <img src="https://picsum.photos/id/500/200/100">
      </div>
    </li>
    <li class="item">
      <div class="item_block">
        <h1>標題7</h1>
        <img src="https://picsum.photos/id/500/200/100">
      </div>
    </li>
    <li class="item">
      <div class="item_block">
        <h1>標題8</h1>
        <img src="https://picsum.photos/id/500/200/100">
      </div>
    </li>
    <li class="item">
      <div class="item_block">
        <h1>標題9</h1>
        <img src="https://picsum.photos/id/500/200/100">
      </div>
    </li>
    <li class="item">
      <div class="item_block">
        <h1>標題10</h1>
        <img src="https://picsum.photos/id/500/200/100">
      </div>
    </li>
  </ul>
</div>

請直接參考下方 CodePen 的畫面結果,實作看看。

參考作法:

5 Youtube iframe 影片 RWD

檔名建議:youtube_iframe_rwd.html

提供以下 iframe 影片,它的寬高比為 560:315,也就是 16:9。

<iframe height="315" width="560" class="test" src="https://www.youtube.com/embed/-RAdHJ-aquE" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

執行完的結果示意:

參考作法:

6MB
hamburger_icon_sample.mov