這個簡報使用 HTML5 製作並展示

你可以使用方向鍵 來播放

縮放快捷鍵 Ctrl 或 Command + +/-

請使用 Google Chrome 來獲得最佳瀏覽效果

Layout*

視覺與網頁設計的精湛攻防

* 你可以稱為版型輸出,將視覺設計變成網頁其實也是一門工作與學問。

我是閃光洽

如果有想離席的請不用客氣

* 例如說尿盾之類的...

網頁設計

ART? Virtual Design? Web Design?

前端工程師

Front-End Enginner

網頁製作的演變
    1991 HTML
    1994 HTML 2
    1996 CSS 1 + JavaScript
    1997 HTML 4
    1998 CSS 2
    2000 XHTML 1
    2001 CSS 3
    2009 HTML 5
    2010 HTML 5 + CSS 3 + JavaScript + ...
實際上的情況是
    1991 Table + Table + Table + ...
    1994 Table + Table + Table + ...
    1996 Table + Table + Table + ...
    1997 Table + Table + Table + ...
    1998 Table + Table + Table + ...
    2000 Table + Table + Table + ...
    2001 Table + Table + Table + ...
    2009 Table + Table + Table + ...
    2010 Table + Table + Table + ...
導致大家都這麼說
  • 網頁設計不過就是這麼回事
  • 原來這就叫做 ART
  • 平面設計也可以轉()一下!
  • 只要會用 Table 就可以做網頁設計!
  • W3C 是什麼?我只知道 IE6 顯示正常!
  • 要特效就用 Flash,那不是我的工作!
勘誤
  • 絕不是你想像的 這麼回事
  • ART 是一種專業,原來那叫做 美工
  • 隔行如隔山,山不會轉,就不要硬
  • Table 一直以來都是 整理資料 用的!
  • IE6 MUST DIE!
  • 如果你也像 Flash 一樣是 embed 的,
      我會很樂意把你換掉!
網頁設計 ~= HTML + CSS
前端工程師 ~= 網頁設計 + JavaScript
HTML

基礎認知

讓你的標籤各適其所,有效利用標籤本身特性

<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td>
  其實我的民間專長是整理資料用的。
</td>
</tr>
</table>
<dl> <dt>群組 A</dt> <dd>還有人記得我是群組標籤這件事情嗎?</dd> </dl>

避免巢狀標籤混淆視聽,避免不必要的標籤開銷

<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td>
  <table cellpadding="0" cellspacing="0" border="0">
    <tr>
      <td>
        多想兩分鐘,你可以不要用兩次 Table!
      </td>
    </tr>
  </table>
</td>
</tr>
</table>
CSS

你應該熟悉

你的習慣是否比 Styling 這件事還要糟糕?

#header {
font-size: 16px; line-height: 18px;
font-family: "Lucida Grande", "Trebuchet MS", Verdana, sans-serif;
background-color: #333333;
}
#header .slogan {  font-size: 24px; }
/* 多想兩分鐘,你可以讓你的樣式更簡潔 */
body { font: 16px/1.2 "Lucida Grande", "Trebuchet MS", Verdana, sans-serif; } #header { background-color: #333333; } .slogan { font-size: 1.8em; }

對於畫面來說,最重要的其實是 box 元件

span.blockboxes {
display: block;
}
span.inlineboxes {
display: inline;
}
JavaScript

或許可以

善用既有工具,不會可以凹別人幫你!

我是 ART: 閃光洽幫我做這個效果!
閃光洽: 為什麼?
我是 ART: 因為我是 ART!
閃光洽: 為什麼?
我是 ART: 因為我是 ART!
閃光洽: 為什麼?
我是 ART: 因為我是 ART!
閃光洽: 為什麼?
我是 ART: 因為我是 ART!

如果執著於畫面效果,自學也是不錯的開始!

從這裡開始 jQueryYUI

CSS Grid System

樣式基準系統

何謂 CSS Grid System?

他是一種畫面輸出的基準,你也可以自行定義。是一種將視覺設計切割成區塊的基準,然後產生一種符合該視覺的基準樣式。依照此基準樣式做網頁設計,這樣的東西就叫做 Grid System。

市面上的基準系統:

  • Blueprint
  • 960.gs
  • YUI Grid CSS
  • 繁簇不及... 就是很多的意思

萬事起頭難

是困難還是災難?

必備的條件

既然叫做 CSS Grid System,所以對於 CSS 操作的熟悉度,決定這件事情到底是困難還是災難。不過,既然決定使用這樣的基準,我想你不希望這件事情是一場災難。


  • 熟悉 box 元件 特性。
  • 能夠分別:position: relative, position: absolute
  • 能夠分別:float: left, float: right
  • 知道這是做什麼:clear
  • 知道這些留白在哪裡:margin, padding, border
  • 基準不是萬能,操作的人 才是!
  • 不要太奢望 IE6 會依照這些 Grid 顯示出正確的結果。
CSS Box 元件

簡單的 Box 元件示意圖

margin

border, overflow*

padding

context



margin
包在 Box 元件最外層的留白區域。

border
介於 margin 與 padding 中間的框線區域。

overflow*
Box 元件的捲軸設定,可推齊相對定位元件。

padding
Box 元件內層的留白區域。

context
Box 元件的本文。

CSS 元件定位

簡易的元件定位效果

I'm a box.

I'm float left box.

I'm float right box.

I'm a box context, between the float boxes.

I'm normal box.

I'm position relative box.

I'm normal box.

I'm position absolute box.

I'm normal box.



DOM
最天然的定位元件,就是我們的 HTML DOM 樹狀結構。

position
絕對 (absolute) 以及相對 (relative) 定位,受限於 DOM 樹狀結構,搭配 top, left, bottom, right 使用。在絕對定位下 bottom, right 可直接定義右方及下方邊界。

float
左 (left) 及右 (right) 浮動定位,受限於 DOM 樹狀結構,可以使用推齊 (clear) 標定對齊定位點。

clear
推齊,受限於 DOM 樹狀結構,專為浮動 (float) 定位所使用的一種設定樣式。可定義對齊的基準點。

CSS 尺寸與邊界

你或許會發現 1+1 > 2 永遠在發生!

所見不一定所得

我是 4 個欄位寬的方塊。

2 欄位方塊。

2 欄位方塊。


2 + 2 > 4

我是 4 個欄位寬的方塊。

2 欄位方塊。

2 欄位方塊。


2 + 2 = 4

絕對定位特殊邊界設定



真正的尺寸與邊界
寬與高 = context + padding + border + margin

position 所定義的邊界
top, left 很常見。在絕對定位 (absolute) 的情況下,可用的 bottom, right 定義另外兩個邊界。需留心 overflow 的使用。

絕對定位的特殊邊界狀態
相對於 DOM 父元件,這四種設定分別代表:

top: 表示上邊界的距離。
left: 表示左邊界距離。
right: 表示右邊界距離。
bottom: 表示下邊界距離。

從頭開始

由 Blueprint* 開始基準樣式

*為什麼是 Blueprint?因為他參考資源比較多,這樣可以多寫幾頁。

Blueprint 由誰開始?

樣式設計其實必須要從視覺設計就開始著手,雖然 Blueprint 有提供一個樣板 PSD 檔*,不過這裡就暫且跳過, 視覺設計的部份不在此列的重點。


  • 先要有一份視覺設計輸出檔案。
  • 去 Blueprint 下載 CSS Framework*。
  • 去 Google 一份 Blueprint Cheat Sheet*。
  • 深呼吸。
  • 深呼吸。
  • 深呼吸。

* Blueprint CSS Framework: http://github.com/joshuaclayton/blueprint-css/zipball/master

* Blueprint tools and resource: http://wiki.github.com/joshuaclayton/blueprint-css/tools-and-resources

* 960.gs 其實提供了更多樣板檔案給視覺設計師參考,不過這裡是說 Blueprint 就是了。

Blueprint 視覺與畫面配置

當我們拿到視覺設計的檔案時,我們該怎做些什麼?


  • 找出畫面最大的外框寬度。
  • 找出畫面最小的元件寬度。
  • 將畫面佈署為天、地、主要區塊、次要區塊。
  • 是不是有無法規劃的區塊?

規劃頁面區塊這件事,對我來說一直都不是件很容易的事情。該怎麼區分這些東西,只能靠經驗的累積, 這裡實在沒辦法提供你方法,只能說,倘若 mockup 做的好,視覺設計與網頁設計輸出這兩件事之間,就能取得很好的平衡。


  • 可以利用軟體自行取得所需區塊元素圖像。
  • 過於複雜的頁面元素需求,可請求視覺設計師協助。
  • 網頁設計輸出,忌諱任意更動視覺設計的結果

出了意外!

俗話說得好

計畫永遠趕不上變化

變化永遠比不上客戶的一通電話

Blueprint 當發生改變時

只能翻盤重來?通常翻盤重來只有一種狀況,那就是客戶翻盤大改。倘若不是遇到這種狀況,那麼使用 Grid System 的好處就比較明顯, 各種區塊能夠比較快速的調整,只是調整之後的後遺症,就是所有的元素都可能得重新取過。


  • 可以依照原有區塊基準快速更動區塊。
  • 區塊基準與特殊需求樣式可完整切割。
  • 基於上一點,可避免錯誤的樣式重疊或繼承。
  • 切割基準區塊有利於版本控制。
  • HTML 標籤樣式屬性統一,利於修改。

改變或許是一時的,但是客戶的電話可能三不五時。基準的規劃不可能百分之百完善, 這世界上沒有完美的 Layout,也沒有完美的客戶。但是絕對有相對應的手段或方法可以面對。


  • 聖嚴法師說:面對他、接受他、處理他、放下他

...或是學著放空

簡易實作

Blueprint 從 HTML 開始

從這裡開始,當然 Blueprint 也有 reset.css 可以使用。

<link rel="stylesheet" href="blueprint/screen.css" type="text/css"
media="screen, projection" />
<link rel="stylesheet" href="blueprint/print.css" type="text/css"
media="print" />
<!--[if IE]>
<link rel="stylesheet" href="blueprint/ie.css" type="text/css"
media="screen, projection" />
<![endif]-->

怎麼辦?Blueprint 預設的 Grid 不合我胃口!

  • 煩請 Google, Blueprint Grid calculator*
  • 倘若你有閒情逸致,拿出電子計算機
    畫面總寬度 = 單位欄位寬度 x N + 單位欄位留白 x (N-1), N 為欄位數目
    
    Blueprint 預設值為:
    
    950px = 30px x 24 + 10px x 23
    
  • 自行改掉 SPAN, APPEND/PREPEND, PUSH/PULL 設定

* Blueprint Grid calculator and generator: http://www.problem.se/labs/gridcalc.php

Blueprint Grid 到底做了什麼?

Blueprint 的 Grid 主要分成了三個部份:

SPAN CLASSES
欄位區塊,Grid 將總寬度,依照留白 (margin) 寬度切割成 N 個欄位 (column),而這個 SPAN 就從 1 ~ N 不等,在 Blueprint 中預設有 24 個欄位可用。

APPEND/PREPEND CLASSES
欄位區塊,在目前所在的區塊往後 (APPEND) 或是往前 (PREPEND) 加入 N-1 個欄位 (padding),數量從 1 ~ N-1 不等。

PUSH/PULL CLASSES
欄位區塊,在目前的所在區塊往後 (PUSH) 或是往前 (PULL) 浮動加入 N-1 個欄位 (margin),數量從 1 ~ N-1 不等。

VERTICAL CLASSES
行類別,單純的在上方 (prepend-top) 或下方 (append-bottom) 加入一個垂直的空白。
Blueprint Grid 操作範例

這裡是 SPAN-8

這裡是SPAN-5

這裡是 SPAN-6 與 last 設定

這裡有一個 <br class="clear" >


這裡有一個 SPAN-10

這裡有一個 SPAN-10 與 APPEND-3

這裡有一個 SPAN-10 與 PREPEND-3

這裡有一個 <br class="clear" >


這裡有一個 SPAN-4

這裡有一個 PUSH-2

這裡有一個 SPAN-10

這裡有一個 SPAN-5 與 last 設定

這裡有一個 PULL-2

Blueprint Grid 佈署範例

這是一個很簡單,也很常見的一種網頁版型佈署範例。

Header


Sidebar

Main

Photo

Context


Full Context

Full Context

Full Context


Footer

Blueprint Grid 佈署範例原始碼

對於 HTML code 其實不用太認真。

<div id="container" class="span-19">
<div class="span-19">
<h3>Header</h3>
</div>
<br class="clear" />
<div class="span-5" style="height: 360px">
<p>Sidebar</p>
</div>
<div class="span-14 last" style="height: 360px">
<p>Main</p>
<div class="span-5 prepend-1">
<p>Photo</p>
</div>
<div class="span-8 last">
<p>Context</p>
</div>
<br class="clear" />
<div class="last prepend-top append-bottom">
<p>Full Context</p>
</div>
<div class="last">
<p>Full Context</p>
<p>Full Context</p>
</div>
</div>
<br class="clear" />
<div class="span-19">
<h3>Footer</h3>
</div>
</div>
Blueprint 除了 Grid 以外的事情

除了可以方便且快速的產生一個乾淨的版面框架之外,我們還有什麼事情是需要注意的?

  • 盡可能不要對基本框架做尺寸操作。
    .span-10 {
    width: 120px; /* 若非必要請勿這樣做 */
    }
  • 樣式選擇器 (Selector) 繼承的地雷。
    .summary {
    font-size: 1.25em;
    }
    
    .summary div {
    font-size: 2em; /* 每個 DIV 字體參照原有 .summary 尺寸再依照 DOM 樹狀結構放大 2 倍 */
    }
  • 注意樣式選擇器的優先權。
    #bullets .summary {
    font-size: 1.25em;
    }
    .summary {
    font-size: 1.5em; /* 類別 (CLASS) 選擇器的優先權低於由名稱 (ID) 選擇器繼承的屬性 */
    }
    
Blueprint 我需要 Reset.css 嗎?

Reset.css 在大多數的 CSS 網頁設計裡面,都是會被使用到的一種樣式。他的目的只有一種,就是將所有的 HTML 標記,恢復成瀏覽器本身的預設設定。 當然 Blueprint 也很貼心的,在 screen.css 中幫您直接做掉了,如果你覺得不需要,是可以把他移除的。

Blueprint 提供了以下的設定:

reset.css
幫助你清除並且重設所有的 HTML 標記設定,並且恢復為瀏覽器預設值。

typography.css
統一設定你的字體樣式、大小、背景與顏色配置,以白底黑字為基準。

forms.css
統一設定你的表單 (form) 樣式、大小、背景與顏色配置,以黑底白字為基準。

其他額外的 plugins
包含了有 buttons, fancy-type, link-icons, rtl 等設定,在此就不贅述。
Blueprint 還有什麼問題?

這是你想像中的基準嗎?

複雜的佈署

浮動元件的思維

Blueprint 需不需要浮動元件?

Blueprint 所使用的 Grid 其實就是浮動元件的一種。但我們不難免會思考, 是不是有必要自行設定更多的浮動元件?以因應超出 Grid System 能耐的事情?

Header

Sidebar

這裡發生了
跨行需求

Main

Footer

我是一個美麗的錯誤



當你有跨行需求時!
版型如果出現這種特殊需求時,你就必須使用浮動元件的設定,但是無論作法為何,你可以自行決定是否套用基準樣式。

當你的元件不屬於基準規範時!
例如 lightbox,或是你需要一些類似燈箱特效時,那些語法可以放在整個基準系統之外,除了可以避免干涉之外,保持基準系統內 DOM 的整潔也是其中一個原因。

Blueprint 何謂推齊 (clear)?

推齊這種說法是我自己變出來的,這個設定就是用來定義一組對齊的基準點,針對浮動 (float) 元件生效,對於定位元件 (position) 是無法產生效用的。

Float Box

推齊右邊,所以變成至頂。

推齊左邊,所以對齊 Box 底端。

這是使用 position 的 Box

在這邊使用 clear 是無效的!

Relative Box

相對定位中,負值造成的意外!

善用浮動與推齊
這兩種設定是相輔相成的,有浮動元件,記得得在確切的位置設定推齊。至於是什麼時間,什麼地點,就看你的需求了。

小心處理相對定位
相對定位元件若有負值定位,裡面的內容會無視 DOM 樹狀結構,直接出現像左圖這種狀況。請記得在相對定位元件上, 設定 overflow 為 hidden,防止這種事情發生。

Blueprint 基準的特別設定

在 Blueprint 中,還有一些比較冷門,或是比較少用上的功能。

div.container
包含所有欄位的最外框。有的人會自己定義這個類別,使用上見仁見智。

div.border
單純的在欄位右邊劃上一個邊框。如果要做背景圖形的邊框,則不適用。

div.colborder
單純的在欄位右邊劃上一個邊框,但是使用更多的空白 (使用一個欄位)。

.showgrid
顯示基準標線的背景圖示。在開發時,基準標線有利於計算欄位,記得上線要拿掉。

.clearfix*
特殊的推齊方法,浮動元件的推齊遇到高度設定時,會有一想不到的意外,這是比較保險的推齊方式。特別是使用巢狀區塊時更容易發生。

* Clear fix: http://www.positioniseverything.net/easyclearing.html

Blueprint 複雜的實作範例

其實也沒有很複雜 (眾歐)。

header
menu

sidebar

main

Photo

tip

content


Box 1

Box 2

footer

Blueprint 複雜的實作原始碼重點

因為沒有很複雜所以我挑重點講 (眾歐)。

  • 搭配定位屬性 (非指定位置*),可以有更多彈性。
    <div class="span-3 pull-2 prepend-top" style="position:absolute;">
    <p>tip<p>
    </div>
  • 利用外留白 (margin) 來取代垂直定位設定。
    <div class="span-5" style="height:360px;margin-top:-40px;">
    <p>sidebar</p>
    </div>
  • 利用 .last 類別將欄位相黏,但請注意尺寸問題。
    <div class="span-4 last prepend-top">
    <p>Box 1</p>
    </div>
    <div class="span-4 last prepend-top">
    <p>Box 2</p>
    </div>
    

* 在基準區塊使用定位屬性,且強制指定位置座標時,將會是惡夢的開始,容後詳述。

裏技

那些奇淫技法

Blueprint 所謂的裏技是...

就是裡面的技巧 (眾歐)

  • 萬一視覺設計 不小心不符合 Grid System!

    Box 1

    Box 2


    WTF!!!

    Box 1

    Box 2

  • 除了 砍掉重練 外,你還有一個辦法!

    有看過我的 blog* 應該知道會知道我要說甚麼...


* blog: http://blog.hinablue.me/entry/CSS_tech_blueprint_css_part_2

Blueprint 必要的犧牲

當基準已成定案,遇到基準以外的事情或是客戶的一通電話,除了哭天喊地、捶胸頓足、回家跟媽媽講、砍掉重練之外,我們還可以用欄位特性來解決。

  • 犧牲一個欄位來滿足不合尺寸的區塊。

    Box 1

    Box 2

    Box 3

    原本的 Box 3


  • 注意尺寸與樣式設定!
    /* 如果我們有一個很接近 span-5 的區塊,但是他比 span-5(190px) 還大,如果要塞 200px 怎麼辦? */
    
    <div class="span-5/* 為什麼還要設定? */" style="width:200px;/* 直接重設寬度 */">
    
    直接犧牲一個欄位的寬度,大多數狀況下就能滿足非基準區塊的寬度要求。
    
    </div>
    <div class="span-3 last/* 原本是 span-4 */">
    
    因為分了一個欄位給前面的區塊,所以相鄰的下一個區塊就必須犧牲一個欄位!
    
    </div>
    
    * 保留 SPAN-5 的設定,除了繼承樣式外,是要讓你記住他的最小寬度,避免 width 被改得比原本更小!
    
Blueprint 巢狀技巧

當然不是要教你築巢...

  • 小區塊也可以使用基準系統來規劃!

    Box 1

    Box 2

    Box 3

    Box 4

    Box 1

    Box 2

    Box 3

    Box 4

    Box 5

    Box 6

    Box 7

    Box 8

  • 留心定位元件 (position) 的使用
    定位設定時:
    
    絕對定位 (absolute) 視覺上跳脫 DOM 樹狀結構,而實際上也是,過量使用會是個惡夢。
    
    相對定位 (relative) 視覺上跳脫 DOM 樹狀結構,實際上卻不然,負值定位會是個惡夢。
    
Blueprint 強制定位的惡夢

叫你不要用,老師在講你都沒有在聽嘛 (丟滑鼠)

  • 若使用定位指定位置,請不要將區塊放入基準系統內。

    Box 1

    Box 2

    Box 3

    relative

    Box 4

    WTF blank here!

    WTF blank here AGAIN!

    • 負值定位,無論絕對或是相對,會留下原始位置的空白區塊,會影響父元件同層 DOM 樹狀結構中,相鄰區塊的對齊點。
    • 相對定位區塊內容,會受到父元件同層 DOM 樹狀結構中,任何區塊的對齊點影響,可以使用 overflow: hidden 來消除 (類推齊效果)。
    • DOM 樹狀結構,會大大影響到定位元件的顯示效果,如需定位,請洽 DOM 根節點。
  • 有些規則不適合用來打破!共勉之!

回到根本

再看我們為 Layout 帶來什麼

HTML HTML 怎麼了?

  • 日趨複雜的頁面結構。
    <!-- 請善用老牌子的 HTML 註解 -->
  • 保持整潔,Simple is VERY Hard.
    <!-- 請讓標籤各適其所! -->
    
    <table> <!-- 我是用來整理資料的 -->
    
  • 不要失去結構彈性。
    <!-- 請不要濫用裏技,都自己定義不如不要套用基準 -->
  • 保持 HTML 的初衷。
    <!-- 修改基準前,請先問自己為什麼 -->

CSS Styling

良好的樣式風格

CSS CSS 怎麼了?
  • 保持你的樣式風格。
    /* 請愛用老牌註解,請使用明確命名規則 */
    
    .wtfstyle123 { /* 鬼才知道這是誰用的,要我筊杯問媽祖嗎? */ }
    
  • 善用選擇器 (Selector)。
    /* 用對選擇器就像選對老師一樣,若沒上天堂,還不至於下地獄 */
    
    div.boxes > p { /* 這就跟小孩一樣,需要慢慢學 */ }
    
  • 避免過多選擇器繼承。
    /* 峰峰相連到天邊,不如搬去住海邊 */
    div.bar .bar .bar .bar .bar { /* 這是內衣廣告嗎? */ }
  • 瀏覽器的問題。
    /* IE6 MUST DIE */

Layout ~= 視覺輸出

User Interface or User Experience

Layout UI? or UX? or UI+UX?

良好的設計,不一定是良好的使用者經驗(要倒過來說也可以)。

  • 其實這個投影片可以按數字鍵 3 做變化。
    我本來就不是個良好的使用者經驗設計(揍飛)。
  • 精品或是藝術品,通常是拿來觀賞的。
    如果要做觀賞用頁面,建議作成海報比較好,又大張(揍飛)。
  • UX 是種累積與分享。
    並不是我們腦袋中想的使用者會(其實根本不會)點這裡那樣簡單的事情。
  • UI + UX ?
    我也想學,真的。
Layout 習慣勝於一切

經驗永遠是習慣累積而成。

  • 打破藩籬!
    不成功便成仁,通常成仁的機率還頗高這樣。
  • 全新教育!
    Slide to unlock 就是一個例子。
  • 簡單!
    Dropbox 連我家的狗都會用(揍飛)。
  • 挑戰性!
    讓你的使用者覺得有趣,而不是毫無目的!

時代是 CSS3

這是瀏覽器大亂鬥的年代

CSS3 群魔亂舞
  • 瀏覽器支援程度不一。
    /* 各家標籤百百款 */
    border-radius: /* 原生 W3C 的寫法 */
    -moz-border-radius: /* 專門給 Mozilla/Firefox 用的 */
    -webkit-border-radius:  /* 專門給 Webkit 核心用的(Safari/Chrome) */
    -ms-border-radius: /* 專門給 IE 用的 */
    -o-border-radius: /* 專門給 Opera 用的 */
    
    /* 而且,未必每一種 CSS3 標籤都需要加前輟 */
    
  • 還不算正式發表(2010)。
    http://www.w3.org/TR/css-2010/
  • 新玩意很多!
    http://www.css3.info/preview/
CSS3 解決方案?
  • 坊間有很多工具可以使用,雖不完美但堪用。
    你也可以請客戶升級到 IE9(眼神死
  • 專屬開發,例如 Mobile WebSite。
    如果你 guts 夠,做 Mozilla/Webkit only 的網站也可以(不可能
  • Web App 也許是另一條路。
    單純的為 Safari/Chrome 貢獻心力這樣
  • 不要離開排版本質!
    我知道 CSS3 可以有 2D/3D 特效,但是,請勿偏離偉大航道(超大誤
CSS3 新仇舊恨
  • VD 叫做視覺設計。
    CSS3 為我們帶來很多,或許是許視覺設計師可以輕易辦到的事情。像是倒圓角,漸層色,陰影。
    
    所以我們是否就踰矩了?
  • VD + Web Design ?
    只要有心。
  • UX 當道,畫面不能只是畫面。
    User Experience,好的設計(VD/Layout),不代表好的使用者經驗。
  • 到底該不該用?
    好工具,不用嗎?
SASS 很酷的工具

SASS

Say A Sex Story

SASS 他是誰?

他是一個由 Ruby 所發展出來的 CSS 工具。把撰寫 CSS 這件事情變成一種有正規寫法的程式語言, 讓你可以利用一些語言特性,來建構與維護你所需要的 CSS 樣式。

  • 需要對 CSS 有相當程度的覺悟!
    俗話說:不會走就想學飛,大概就是這個意思。
  • 解決了 iehack/hasLayout 問題!
    可以請 IE 全面升級到 9.0+ 以上嗎?
  • 好工具!不用嗎?
    如果是 co-work,請做好準備。
  • 缺點是?
    VD 苦手,畢竟不是所有人都對 CSS 夠熟悉。

HTML 5 ?

How To Meet Ladies (in 5 mins)?

HTML5 第一次把妹就上手
  • 盡可能善於表達
    請你當我的 code我想當你的 compiler.
  • 保持簡單
    只要你喜歡就好我喜歡這個,你呢?
  • 善用新意,不是了無新意
    這個我知道,我教你這個應該是,不如我們一起嘗試。
  • 容許彈性
    這裡我們上次去過了這次搭捷運去吧!
  • 這裡使用了自訂語意標籤 <noway> 與 <thisway>。就是一個有刪除線,一個是粗體字的地方。
  • 我真的沒有要教你把妹,真的!
HTML5 百年傳統,全新感受
  • 強調語意的新作法
    http://www.w3.org/TR/html5-diff/ 他並不是全部沿用自 HTML 4 的特性!
  • KEEP IT SIMPLE
    <!DOCTYPE html>
  • 承襲了部份 XHTML 特性
    所以我可以寫 <noway> 與 <thisway>。不過並不代表可以亂來。
  • 保持你的風格
    HTML5 並沒有強制規範標籤撰寫風格(是否關閉標籤、標籤大小寫等),但是,請做你自己。

新的想法

Layout = HTML + CSS + 你的創意

你的創意 = jQuery + 你的腦袋
Layout ~= HTML + CSS Grid + jQuery

到頭來

客戶最大

Layout = 客戶的一通電話

不過

網頁設計是種藝術

請相信自己的專業

Q&A

謝謝收看