[Layout] Web Design Part 1

What's Layout?

一直以來,我始終都覺得這是一個很沉悶的課題。如果用一張紙一枝筆可以解釋的話,那麼請這麼做:

  • 畫出 1 個大的矩形,你可以叫他 A
  • 在這個 A 矩形中,畫出 10 個恰巧可以填滿的矩形
  • 試著說出為什麼要這樣擺放
  • 把 10 個矩形減少為 5 個,試著重新填滿 A 矩形

如果你問我矩形是什麼形狀,那我很確定你可能不適合走這條路。

我們常聽到網頁設計,但是,扣除掉 VD(VirtualVisual Design) 之後的事情,大家可能就漠不關心了。而,對於 F2E(Front-End Engineer) 這種行業,可能連聽都沒聽過。所以,網頁設計理所當然的變成了有些人要全包的悲劇,或是災難。

Layout 的另一種說法是切版。通常我們使用標籤語言、樣式表與 Javascript 來完成切版這件事情。扣除掉 Javascript 這個工程師才會用的哏很程式化的東西之外,剩下的只有 HTML 與 CSS 了。如果你現在還要喊 HTML 是程式我看不懂 或是 CSS 是程式我看不懂 這樣的話,那麼我也覺得你可能不是很適合走這條路。

門檻是用來跨越的,不是讓你去被絆倒的。

拿出你剛剛畫完的 5 個矩形,那個 A 矩形就是你的螢幕。其中的 5 個矩形就是你的元素。這樣你已經完成切版的第一步了,這樣有很困難的話請舉手,或者說去問一下 Google 大神什麼叫矩形也是可以的。

思考這 5 個框框能帶給你什麼?

  • 當我換成 HTML 的時候會是什麼
  • 當我套入 CSS 的時候會是什麼
  • 當我的 CSS 失效的時候會是什麼
  • 當我的 Javascript 失效的時候會是什麼

假設你略懂 HTML,那麼你可能會把框框都換成了 <div> 這樣的標籤。當然我們不希望你把這些東西都變成 <table>,相信我,那會是場悲劇。或許你會這麼問:

  • <div> 我就沒辦法對齊了!
  • 為什麼不用 <table> 拉一拉就好?
  • 我除了 <div> 之外,沒有其他選擇嗎?
  • 用 <div> 就不能所見及所得了

也許所見即所得是一種被寵壞的趨勢,不過我們還是對於這些事情保持一種保留態度。未來的編輯器會發展成什麼樣子我們並不知道,我所知道的只是,利用現有的工具來達成我們所要達成的目標而已。

熟悉與善用工具是必須的。我想你不會想看到切版輸出的時候,出現 <tr><td></td></tr> 然後用來換行,而聽說換行的標籤叫做 <br />。或者說,用了好多的 <div> 之後,卻在樣式表中下了 display:table 這樣的設定。難道就不能乖乖的使用 <table> 嗎?

標籤的適切性是很重要的。並不是我很愛拿 <table><div> 來舉例(騙人,明明就很愛用),而是這種例子似乎屢見不鮮啊!這就跟你不會拿 MBA 來當門擋是一樣的道理。

MBA 門擋出處:筆電 @ River Comic Studio

Skill

其實就只有兩個:

  • CSS
  • HTML

剩下的就只是你的熱忱了。

HOWTO

從別人的作品開始,這是不二法門。畢竟井上雄彥也曾經是北條司的助理嘛(這有關係嘛)。

男子漢就是鍊結絕對不開新視窗

這是我寫的投影片:Layout presentation

下回,我直接用實際的例子來說明一些問題。

  • 標籤語意,搞不清楚哪裡該用哪一種標籤。
  • 標籤適用性,哪種標籤可以怎麼用,哪種標籤不行。
  • 結構性問題,標籤所製作出來的區塊(box),編排上有難度。
  • 難以發現標籤錯誤,或是無法得知是否誤用。
  • 屬性特性不明瞭。
  • 瀏覽器對於屬性的支援程度不一。
  • 視覺設計轉換成樣式設計的落差。
  • 有些樣式設計無法達成的事情。
  • 畫面編排與視覺設計的落差。
  • 不知道畫面編排的方式何種為佳。
  • 難以精準調整畫面狀況。
  • 無法即時得知畫面效果。
Hina Chen
偏執與強迫症的患者,算不上是無可救藥,只是我已經遇上我的良醫了。
Taipei