iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 17
1
Modern Web

Quasar CLI Framework 邪教:整合分散的前端技術和工具、常見的開發需求系列 第 17

第十七天:網站的基本結構 - 版型與頁面I (<q-layout>、<q-header>、<q-drawer>、<q-footer>)

  • 分享至 

  • twitterImage
  •  

※ 今天的內容

一、Quasar 的 Layout系統
二、常見的網站類型
三、網站內容架構的常見區分方式
四、網站與版型的關係
五、大多數網站的版型的組成要素 (HTML5 Layout Element)
六、總結
七、延伸閱讀

一、Quasar 的 Layout系統

Quasar 框架提供了一個Layout系統
可以非常方便與快速的建立一個Layout

1.首先我們進到官方的Layout Builder
https://quasar.dev/layout/layout#Layout-Builder

https://ithelp.ithome.com.tw/upload/images/20201002/20120331NTL8iqTgYy.jpg

2.根據專案的需求,選擇Layout需不需要Header、Sidebar(drawer)、Footer
https://ithelp.ithome.com.tw/upload/images/20201002/20120331ESgBalz47k.jpg

3.選擇Layout上下左右的布局
https://ithelp.ithome.com.tw/upload/images/20201002/20120331ZiGSlT7I6v.jpg

(1) 紅色的部分,是選擇每一邊是否要固定顯示在頁面上,不管內容多寬或多高
大寫是固定,小寫是不固定

(2) 綠色的部分,是分別選擇四個角落是屬於哪一個區塊
h是屬於Header,r是屬於right Drawer,f是屬於Footer,l是屬於Left Drawer

這些設定對照的元件程式碼:

<q-layout view="hHh LpR fFf"> 

4.Header 跟 Footer的微調
(1) Reaveal:當瀏覽器的卷軸離Header和Footer有段距離,你往下滑的過程中,會隱藏Header或Footer的
當你將瀏覽器卷軸往上滑,顯示Header和Footer

https://ithelp.ithome.com.tw/upload/images/20201002/20120331x0uvajD7II.jpg

(2) Separator:選擇用陰影邊框來作為分隔的視覺效果,或是不需要

這些設定對照的元件程式碼:

<q-header :reveal="false" elevated class="bg-primary text-white">
<q-footer :reveal="false" elevated class="bg-grey-8 text-white">

5.左右Sidebar(Drawer)的微調
(1) Overlay: 如下圖看到的
打開時,左右兩側會疊在Page上面
關閉時,展開的時候Page會用Padding將內容推到裡面
https://ithelp.ithome.com.tw/upload/images/20201002/20120331zF0CUlLYcw.jpg

https://ithelp.ithome.com.tw/upload/images/20201002/20120331wGUG95dAli.jpg

(2) Behavior
a. 當Behavior是Normal的時候
平板的寬度以下,Sidebar(Drawer)展開時會覆蓋所有內容,並加上一個灰色半透明背景
https://ithelp.ithome.com.tw/upload/images/20201002/201203316iSaIn3fnM.jpg

平板的寬度以上,Sidebar(Drawer)展開時會以當前布局變化版型
https://ithelp.ithome.com.tw/upload/images/20201002/201203311BlXgPgObI.jpg

b. 當Behavior是mobile的時候
任何解析度寬度下,Sidebar(Drawer)展開時皆以平板的寬度以下的方式顯示

c. 當Behavior是Desktop的時候
任何解析度寬度下,Sidebar(Drawer)展開時皆以平板的寬度以上的方式顯示

(3) Separator:選擇用陰影邊框來作為分隔的視覺效果,或是不需要

這些設定對照的元件程式碼:

<q-drawer behavior="normal" v-model="left" side="left" bordered>
<q-drawer behavior="normal" v-model="right" side="right" bordered>

6.設定各布局預設顯示還是隱藏
通常會用來設定,第一次進到網站時,左右側的Sidebar(Drawer)是否要顯示
https://ithelp.ithome.com.tw/upload/images/20201002/20120331T1JURyThx9.jpg

這些設定對照的元件程式碼:

<q-drawer show-if-above>

7.產生Layout的程式碼
沒問題之後,就可以按下Export Layout,複製程式碼
貼在src/MainLayout.vue ,做其他細節的微調
https://ithelp.ithome.com.tw/upload/images/20201002/2012033149cuPV3NzB.jpg

https://ithelp.ithome.com.tw/upload/images/20201002/20120331LjyYRTU1EC.jpg

https://ithelp.ithome.com.tw/upload/images/20201002/20120331kIAj5exqiL.jpg

在瀏覽器上會看到,Header、Sidbar、Footer 分別轉換成HTML5的Layout Element
<main>則是明天會談到的<q-page>
https://ithelp.ithome.com.tw/upload/images/20201003/20120331Q3gft6tvEB.jpg

關於微調的設定參數
可以查詢官方的說明文件

Layout
Layout Header and Footer
Layout Drawer

二、常見的網站類型

任何一個網站的專案開發
在我們選擇使用什麼程式語言、框架之前
第一個要考慮的問題,是這個網站的用途:

(一) 組織或議題的形象網站

某個特定組織或議題的「最新資訊」、「簡介資訊」、「產品資訊」、「活動資訊」
透過網站傳達出去,給關心此組織或議題的人了解
例如:

  1. 政府機構網站
    在「立法院」的網站,了解近期議會的紀錄、目前正在推動的重要法案
    以及目前立法院的簡介、組織架構、當屆的立委成員

https://ithelp.ithome.com.tw/upload/images/20201002/20120331IbTApD76Az.png

  1. 企業網站
    在「台灣高鐵」網站的「最新消息」,來查看列車的異動資訊
    以及各個車站的資訊、購票的資訊、活動的資訊
    https://ithelp.ithome.com.tw/upload/images/20201002/20120331at40QJoZp6.png

  2. 學校網站
    在「哈佛大學」網站可以看到,學校的宣傳資訊、各學院的組織架構

https://ithelp.ithome.com.tw/upload/images/20201002/20120331DkOzw2eli6.png

  1. 系所網站
    每逢升學考的期間
    多少都會到各個有興趣的學校系所,查看課程的資訊、推甄的資訊、招生的榜單

https://ithelp.ithome.com.tw/upload/images/20201002/20120331V61hjZc0RI.png

(二) 重資訊交流的平台網站

讓瀏覽者可以在網站上和其他人分享、討論、交流
可以是某個範圍的議題,也可以是個人的生活軼事
例如:

1.個人部落格
你可以建立屬於自己的部落格,透過文章分享自己想分享的事情,並且分類
讓其他人可以上來閱讀,並透過留言回饋

https://ithelp.ithome.com.tw/upload/images/20201002/20120331RSReUTrsj6.jpg

https://ithelp.ithome.com.tw/upload/images/20201002/20120331MEhkBWUf1h.png

2.論壇、BBS
我們現在看到IT邦幫忙,就是一個討論IT的論壇
相較於部落格,大家都可以擁有自己的會員帳號
在上面發表自己的文章、問題
或者在別人的文章底下發表留言、回答

另外一個例子
你可以在PTT,針對不同的議題發文、留言、引戰

https://ithelp.ithome.com.tw/upload/images/20201002/20120331KCExY0sU2w.jpg

3.社群網站(臉書、推特、IG)
相對於個人部落格和論壇
更加注重「交流對象的區分」和「互動」的部分
像是「限時動態」、「粉絲追蹤或好友」「社團」、「私訊的通話功能」、「個人直播」

https://ithelp.ithome.com.tw/upload/images/20201002/201203314aJ6MzeGHp.jpg

(三) 特定應用的平台網站

為了提供某個或某些特定的服務,而出現的網站

  1. 入口網站的各項服務
    像是Google和Yahoo,提供多項服務給使用者使用,包括:
    (1) 「搜尋引擎」的服務:查詢資料或網站
    (2) 「電子信箱」的服務:寄信與收信
    (3) 「新聞」的服務:查看最新的生活時事
    (4) 「雲端硬碟」:存放並管理檔案

  2. 電子商務平台
    像是「博客來」、「天瓏網路書店」、「PC Party」、「Pchome 24H」
    提供一個平台販賣商品,讓使用者瀏覽商品、下單購買

  3. 訂位or訂票or掛號or選課系統
    通常是某個組織,為了將某個流程電子化而開發的網站,包括:
    (1) 連假或或重大節日,容易引發戰爭的「台鐵、高鐵的訂票網站」
    (2) 大醫院的「門診掛號系統」
    (3) 每逢開學期間,容易引發戰爭的「選課系統」

  4. 串流影音類網站
    顧名思義,讓瀏覽者在上面瀏覽或收聽影音的平台,包括:
    (1) 流行音樂的Spotify、KKBOX
    (2) 影音或直播的Youtube、Twich、晚上收看的網站

  5. 數據呈現的網站
    用於分析、統計特定資料的網站,
    (1) 搭配物聯網架構,採集物理數據的監控網站
    (2) 提供股市資訊的台灣證券交易所
    (3) 統計網站流量的Google Analytics

三、網站內容架構的常見區分方式

我們進到一個網站,通常會有幾個原因:

  1. 在那個網站的某個頁面尋找自己需要的資訊
  2. 使用網站平台提供的服務功能
  3. 了解那個網站的組織或議題
  4. 閒逛

所以每個網站內容架構的區分方式都不太一樣,包括:

(一) 呈現的資料類型

企業網站來說,主要呈現的資訊包括:

  1. 訊息公告
  2. 組織簡介
  3. 企業提供的服務或產品簡介
  4. 聯絡業務的電子表單

系所網站來說,主要呈現的資訊包括:

  1. 訊息公告
  2. 組織簡介
  3. 課程資訊
  4. 招生資訊

網站的主要目的,是有效的宣傳某個組織或議題的資訊

(二) 提供的功能與服務

例如我們現在看到的IT邦幫忙,會員可以在上面

  1. 發問和回答IT問題
  2. 發表和留言IT技術文章
  3. IT工作的徵才
  4. 快速針對某個Tag分類尋找問答或留言
  5. 聊天室
  6. 鐵人賽的活動

通常這類的網站,相對於宣傳網站本身
更重要的目的是,讓瀏覽者更方便的使用網站上的功能和服務

(三) 探索引導的架構

由於社群網站相對於其他網站
更重視資料的引導,包括「通知」、「搜尋」、「文章的無限推播」
像是推特跟IG,網站就是這類的架構

四、網站與版型的關係

我們以目前看到的IT邦幫忙舉例
使用者進到一個網站,就像進到一個環境
透過網站的版型,可以讓使用者快速熟悉一個網站:

  1. 目前看到的是哪一個網站
    通常網站的最上方會有一個Logo,做為網站的識別要素
    https://ithelp.ithome.com.tw/upload/images/20201002/20120331baUo9qk2RC.jpg

  2. 我們在網站的哪一個區域、頁面
    通常會在導覽列上標註目前所在的區域
    https://ithelp.ithome.com.tw/upload/images/20201002/201203313TMXrRqfSx.jpg

  3. 我們如果從這個網站可以了解哪些資訊使用哪些服務或功能
    使用者可以透過導覽列的連結,穿梭於網站的不同區域

https://ithelp.ithome.com.tw/upload/images/20201002/20120331GPUJ4tfc8S.jpg

  1. 我們如何快速找到網站當中的某一項資訊
    現在很多網站都有提供站內的搜尋功能,有的使用搜尋引擎,有的是使用自己開發
    看過有的技術文件沒有提供搜尋的功能,查起來就非常不方便
    https://ithelp.ithome.com.tw/upload/images/20201002/20120331JZc8f4Ed1c.jpg

  2. 網站不太會常被關注的資訊
    通常會在最底下放那個組織的「版權宣告」、「聯絡資訊」、「隱私權與會員使用條款」
    https://ithelp.ithome.com.tw/upload/images/20201002/20120331PZg7aCGNgS.jpg

五、大多數網站的版型的組成要素 (HTML5 Layout Element)

上方的Header:對應HTML5 的 <header>
左右兩側的Sidebar:對應HTML5 的 <aside>
下方的Footer:對應HTML5 的 <footer>
在quasar 裡面,唯一需要手刻的,也相對簡單的,就是上方的<nav>

https://ithelp.ithome.com.tw/upload/images/20201002/20120331ThqgHOr9sb.png
(圖片截自W3School的內容 https://www.w3schools.com/html/html_layout.asp)

1. 為什麼很多網站的Logo跟導覽列會放在上面(Header)與左側(Sidebar)?

因為人在瀏覽網站時的視覺動線,是從從上到下左至右閱讀(有的語系除外)

形象類的網站重心是傳達資料,後端或功能複雜的網站重心是使用與操作
很多形象類的網站會將導覽列會放在Header。主要的內容放在下方。
後台或功能複雜的網站,通常會將導覽選單放在左右的Sidebar,將主要的內容和操作,放在面積較大的一側。

2.為什麼臉書的聊天室、通知,經常放在右方?

接續前面說到的,為了不干擾瀏覽網站的視覺動線
會把層級較高的資訊,放在左邊
相對次要的資訊,放到右手邊

3. 為什麼條款、聯絡資訊跟版權宣告常常放在最下方 (Footer)?

這些資訊並不是大多數使用者近來網站時,主要查看的資訊
可是對於網站架設一方,又是必須放上來的資訊
也因此下方的Footer是最好的位置

六、總結

Layout系統是Quasar框架當中我非常喜歡的點
一方面它省下了非常多處理版面的CSS細節
另一方面也保留非常多的彈性可以調整

如果對網頁的版面設計想要有更深入的了解
可以瀏覽下方的延伸閱讀
裡面談到了很多版型設計的相關常識、原則和需要注意的點

七、延伸閱讀

Web page layout: website anatomy every designer needs to learn
Understanding the Proper Way to Lay Out a Page with HTML5


上一篇
第十六天:專案的初始化 - 「前後台頁面存取權限」情境需求練習 (第三部分總結)
下一篇
第十八天:網站的基本結構 - 版型與頁面II (<q-page-container>、<q-page>、<q-page-sticky>)
系列文
Quasar CLI Framework 邪教:整合分散的前端技術和工具、常見的開發需求31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言