自從學習、實踐CSS以來,問題層出不窮,實在是自己學習的太膚淺,對CSS的理解也不夠。
本篇摘錄一段對CSS大師Eric的采訪記錄,希望加深認識,准備重拾對CSS的學習勁頭。
關於作者和此篇采訪
原文於2004年4月21日采訪,載於webstandardgroup.org由國內CSS的倡導者和先驅阿捷翻譯(注,阿捷乃傅捷,是《網站重構》的譯著者)。
Eric A. Meyer從1993年開始做網絡方面的工作,受雇於Netscape公司做標准設計培訓師。Eric在這個行業中相當有名,他經常就web標准、跨浏覽器兼容性、CSS和web設計等方面在各種會議上發言。作為一個西方預科大學的網絡管理員和畢業生,Eric開發W3C的CSS1校驗程序,並於最近出版了盡其所能發現的CSS設計局限。Eric也是《Eric Meyer on CSS》、《Mastering the Language of Web Design》(New Riders)、《樣式表:權威指南》(O’Reilly & Associates)、《CSS2.0 程序員參考》(Osborne’ McGraw-Hill)以及眾所周知的CSS 浏覽器兼容性表的作者。
Eric Meyer是Html,CSS和web標准方面國際知名的專家,有著廣泛的讀者,同時也是 Complex Spiral Consulting 的發起人。Complex Spiral Consulting是一個采用web標准技術幫助客戶節約成本和提高效益的公司。
問題一Russ:你的新書《CSS權威指南》(Cascading Style Sheets: The Definitive Guide)第二版 剛剛寫好,在我們了解此書細節前,想先問一下:你已經出版了多少本書?我發誓我家當地圖書館有專門一個類別是你的書籍。
Eric:不,不,那都是 Molly Holzschlag 的書,我只是類似的、輔助的部分。我已經寫了5本書,其中的一本是精簡版,我想那也許能也許不能算作一本書(我妻子堅持認為是)。第一本就是《CSS權威指南》,如果這次的第二版算獨立版本,那我就有6本書了。我自己認為這次的第二版是算一本,因為它的工作量相當於寫一本新書。
問題二Russ: 在新權威指南中,比第一版增加或者更新了什麼內容?
Eric:幾乎所有內容都更新了。唯一不需要改變的是第一章和關於字體的章節,其他內容都大半或者完全的更新了。原來的章節排列在文本狀態下完全打散重新排列。例如:在第一版中有”floating in the Visual Formatting”章節和”positioning got its own”章節,在新版中我將它們合並到單獨一章中去了,並重寫了大部分的格式章節。同樣的方式,”the bit about lists”移到了它原有的章節,並增加了大量內容。有三章是全新的,它們是:Table Layout(表格布局), User Interface Styles(用戶界面樣式), and Non-Screen Media(非屏幕顯示類媒體).
問題三Russ:我聽到一個傳言說你的《Eric Meyer on CSS》也有新版本,新版本提供了多少種設計方法?
Eric:那個傳言是真的。我們已經命名它為”in a blinding Flash of creative genius, ‘More Eric Meyer on CSS.’ ” 它比第一版有一些的改進,但並不多。我要說的是,這兩本書沒有前後的關聯性,不需要為了第二版去閱讀第一版(即使你兩本都擁有。) 第一版的讀者可以回想一下,第一個設計方法是如何將表格驅動的布局轉換為簡單的表格和CSS。而在新書裡,第一個設計方法是:將只用Html標識和空白GIF設計的有關頁面轉換為一個用純CSS替代表格布局的頁面。
類似的,有許多設計方法,例如:多種方法顯示相冊(photo gallery)樣式,用表列數據實現整齊的金融報表,以及用背景布置在多個浏覽器實現半透明效果,包括在IE/Win中。
有一個關於顯示三級list的設計方法,包括列表的嵌套以及如何將它們轉換為一個”下拉(dropdown)”的菜單,並且可以工作在大部分浏覽器上(包括IE/Win),就象Doug Bowman的 Sliding Doors(滑門) 技術一樣好。
除了上面這些,還有一個結合的方法解決weblog的入口樣式問題。書中的最後一個方法是隨便拿 CSS Zen Garden (由 Dave 建立)的一個設計,然後用css來實現它。基本上,Dave給我一個Photoshop設計文件,然後我把它切割成我需要的幾部分並用CSS使它正常工作,這樣做你可以看到從設計到最終代碼的整個過程。我也考慮到用PNG圖片的方法,並且不會在IE/win中看起來難看。
問題四Russ: 兩年以前,CSS很少被討論,現在看起來到處都在談論!你是否認為自己幫助了它轉變為主流意識?
Eric:這是自然而然的事情,真的。首先,IE6開始支持DOCTYPE開關,稍後又宣布它將不再發放新的IE版本,給大家一個穩定的感覺。第二,足夠的設計師有足夠的時間閱讀書籍和教程,並用CSS在他們自己的站點上做實驗。在這種背景下,一批優秀的設計站點出現了。第三,我想是因為隨著設計藝術的提升,那些有設計能力的天才並能真正理解CSS好處的web設計師(象Doug Bowman, Dave Shea, 和 Jeffrey Zeldman)推動了事情的進展。連線(wired)雜志網站的重新設計,禅意花園(CSS Zen Garden)以及其他站點開始展示CSS驅動的設計,不僅僅是能工作,而且看起來非常漂亮、不可思意。
越來越多的實用的、容易跟學的資源(例如:Listutorial 和 Floatutorial)也起到了很大作用,等等。
問題五Russ:對於那些剛開始接觸和使用web標准的設計師和開發者,CSS的哪些方面是最重要的?
Eric:最重要的?我不得不說是層疊(cascading)部分。不僅僅只是層疊,還包括繼承(inheritance)、特征(specificity)和選擇器(selector construction),一旦你掌握了這些,其他的都只是細節問題。
接下來,我想徹底理解視覺效果,包括塊(block)和內聯(inline),也是至關重要的。如果你能知道設計將展現什麼效果,可以避免很多(CSS沒有按預期執行)令人頭疼的問題。就象很多語言,CSS有它的規則,忽略規則肯定導致混亂。
問題六Russ:在過去的12個月裡,有一種圖片替代(image replacement)技術 被引入。你對它的全面感覺是什麼?如果你不得不使用它,你將使用哪種模式(model)?
Eric:我偏向於使用CSS3的方法:用’content’屬性來替換內容。這是盡可能輕量(low-weight)和non-hackish的方法。這也是在目前低支持情況下的方法,因為目前只有Opera支持圖片替代。
另外,我發現圖片替代技術的優點和缺點並存,優點是使某些文本看上去漂亮,缺點是給靠聲音閱讀者造成易用性問題。坦率講,真正的問題在於讀者自己。他們嘗試展現真實的頁面和閱讀結果,但他們在做的恰恰是一件錯誤的事情。如果一個頁面設置了一個screen-medium樣式,而閱讀機將完全忽略那些樣式,除非大多數的閱讀器被重新修理。
問題七Russ:好象一提到”font size”就會點燃CSS大討論–一場字體純化論者和網頁設計師的戰爭。你是否認為有一個適合所有用戶的解決方法?
Eric:沒有,雖然我希望有別的方式,但是我沒有。每一種設置字體的方法都有優點和缺點。你能做的最好的方法就是找到一種以前最佳,以後變化最小的方法,而且,這需要在不斷的設計變化(design-by-design)過程中完成。一位設計師的目標是盡可能以pixel控制文本字體達到最好表現,雖然使用ems或者關鍵字(例如x-small)能達到更好的效果。任何時候,如果有人告訴你,有一種方法定義你的字體尺寸適合所有站點,那麼他只是告訴你一個原則,而不是一個解決方法。
問題八Russ:有一個一直爭議的問題,你對CSS技巧(hacks)有什麼看法?
Eric:這是不可避免的,直到有一天,我們的浏覽器能夠完美的支持和執行CSS,就是CSS hacks停止的一天。在此以前我們將堅持做。要指出,我的意思是針對所有的hacks,不管它們是對於CSS,還是其他事情,比如微軟的Conditional Comments。
問題九Russ: 你是否認為當浏覽器市場為CSS3做好准備時,將進入一個新時代—記住微軟Longhorn操作系統的時間表。
Eric:我是這樣認為。但是,按這種說法,那麼全面支持CSS2的視覺媒體(visual-medium)看起來早應該在2003年完成。我的預言記錄總是比其他人要差,也或許不適合一個長期計劃吧。
問題十Russ:最後一個問題,越來越多的web設計師正加入CSS2的隊伍,你是否認為CSS3的復雜性將減少它自身的吸引力,甚至使一些畏懼它的設計師完全放棄CSS?
Eric:有比那更糟的:多數的web設計師僅僅學習了CSS2的一部分,而沒有真正理解它的本質。
任何事情都有可能發生,就好象曾經有設計師因為CSS1的”復雜性”(相對他們所掌握的知識)而畏懼的。
關於CSS3,有一件好事情就是:它被分離並集成到模塊(modules)中去了,所以你可以忽略你不關心的部分,而集中精力在你想了解的部分。如果你真得想深入到打印樣式中,你可以閱讀打印模塊(Print module)去了解它。如果你關心的是國際化,那麼你找到I18N 模塊,那裡有些每個人都需要了解的部分(如選擇器和層疊),但是隨後,伴隨你的興趣而來的是不得不啃那些龐大的規范說明書。