【專業】串接樣式表概論
串接樣式表(Cascading Style Sheets, 以下簡稱 CSS)是現代網頁設計師必備的技術之一,但你真的知道你在做什麼嗎?
老實說,雖然開始採用 CSS 技術的網站愈來愈普遍,但是知道它的特性,又能將之善加運用的網站,實在是少之又少。而在非歐美語系的網路世界中,CSS 被濫用誤用的情況又更加嚴重。更可怕的是坊間充斥的各種似是而非的 CSS 教學:網頁不是只有視覺效果而已好不好!!
網頁設計的常見偏差觀念
- 我想固定字型大小,不這麼做的話我的網頁會走位!
- 要怎麼把連結的底線拿掉?最好讓它和旁邊的文字顏色一樣!
- 這一頁沒有問題啊?在我的電腦上看起來美極了!
- 中文字型只有細明體可以用嗎?醜死了,乾脆通通做成圖吧!
在正式介紹 CSS 的強大功能之前,我們必須先釐清幾個概念。如果您無法調整心態,這個教學系列會很難繼續下去:
網站規劃≠平面設計
- 網頁是「活」的,是會流動的。
- 網頁是有重量的。並不是人人都有寬頻。
- 世上沒有完全相同的使用者設定。你看起來很漂亮的網頁,換一台電腦很可能就慘不忍睹了。
- 沒有「精準的網頁設計」,只有「彈性的網頁設計」。
- 使用者或許很笨,但他有權決定你的頁面如何呈現。
- 將心比心:你會為了看別人的網站,更動自己習慣的設定嗎?換一家網站逛簡單多了!
- 網站易用度(usability)是管理人的責任。無障礙空間的概念也適用於網路世界。
趁早捨棄「為什麼不能一種設計皆大歡喜?」的不切實際想法吧。如果你不能忍受自己的設計會在不同的平台有不同的外貌的事實(即使只是差之 pixel),你還是趁早改行吧!
所幸,網頁並不是無法控制,它只是不能被 100% 地控制。認清網路的特性,再運用一點常識、一點邏輯、一點 HTML 和 CSS,任何一位網頁設計師都能掌握其中的 90%。而在網路世界,這樣就已經差不多是 100% 了。
終於可以進入正題了。CSS 到底可以為我們做什麼?
網站管理的常見難題
- 上次配的顏色不好看想換掉,可是有一百多頁要改怎麼辦?
- 明明是很簡單的設計,為什麼檔案這麼大?
- 排版好麻煩!一定要切 frame 套 table 嗎?
- 可惡!(請自己代換)到底要怎麼設定?
在 CSS 面前,以上這些都不是問題。當然,誠如任何技術,CSS 絕非萬能,更有其缺點;但只要運用得當,你也可以輕鬆享受 CSS 的強大功能與便利。口說無憑;請試著列印本頁,再比照你在畫面上看到的頁面:不要懷疑,它們是同一張網頁,只是受到不同的樣式表控制,因此呈現不同的風貌。
骨肉分離
太初有 HTML,而後有 CSS。
HTML 者,超文件標記語言(Hypertext Markup Language)是也。這樣說好了。不論您表面上使用哪一種網頁編輯軟體,網頁的骨子裡就是 HTML,也就是您檢視原始檔時看到的那堆東西。
所謂的標記語言,是用來「賦予各個元件意義」的一種註記。比方說,我可以指定某段文字為「標題」,或是指定另一段文字為「段落」。更仔細的話,還可以將一篇文章區分為「前言」、「主文」、「結語」和「註解」等區塊。這就是文件的架構(structure)。
那麼問題來了:HTML 是標記語言,我的排版需求怎麼辦?
在 CSS 問世之前,我們只有用 HTML 硬寫一途。因應而生的,就是各種偏離標記語言精神的排版用語法,像是斜體字和粗體字等。雖然看起來好像效果是一樣的,但在意義上卻是天差地遠:同樣是在註記文件,「這是粗體字」和「這裡是重點」,後者顯然高明許多。
所幸,網路工作者終於有了排版(style)的好工具:CSS。它和 HTML 相輔相成,而且簡單易學。如果說 HTML 是網頁的骨架,CSS 就是附著其上的血肉,賦予網頁生命。而骨架不好的話,再怎麼眩目的設計都只是虛有其表;這是學習 CSS 的第一課。
以上是冗長的開場白。關於 CSS 的實際應用,請待下回分曉。