序言
長久以來,我一直有一個夢想。在過去的8、9年間,我主要從事教育工作,包括委托和編輯技術書籍,來幫助人們使用技術建立酷炫的東西,為我所工作過的多家公司培訓新員工,以及編輯和撰寫指南性的文章,幫助人們使用Opera的軟件。我也很著迷於Web,並且是開放的Web標准的堅定信徒。我希望通過我所從事的教育和培訓工作,教會人們如何合作,如何相互尊重,教會他們如何制作可跨平台、跨浏覽器、跨設備訪問的Web站點(甚至殘疾人也能無障礙地訪問),為改造Web世界盡我的一點綿薄之力。要實現這個目標,Web標准是關鍵 。因此我決定將我的時間和精力集中用於推廣Web標准的應用,這是我長久以來一直有的想法,但終於在Opera公司裡實現了,為此我要感謝我的上司聘用我專職從事這項工作,我的一個夢想終於成為了現實。
在這篇文章裡,我要向大家介紹我和其他很多人花費數月時間開發的一個課程——Web標准課程,該課程旨在向大家提供Web設計和開發的堅實基礎,無論讀者是誰,此教程完全免費、可訪問,並且不需要預備知識。當然,我主要還是希望在大學裡推廣本課程,因為我發現很多大學都缺乏好的關於Web標准的課程。我聽說很多大學生不願意花時間去學習關於Web標准的課程,因為評分辦法已很過時了。我還聽說一些公司在面試申請Web相關職位的大學畢業生時,發現這些大學畢業生根本不了解實際的Web開發是如何進行的,而感到非常失望。而如果你以一種理性的風格,在一所先進的大學裡教Web標准的話,那我要向你致敬,請與我聯系!
這篇文章的主要內容包括:
為什麼要使用Web標准?在這一部分,我要簡單論述使用Web標准的優點,為什麼很多時候Web標准未得到采用,以及如何通過學習我們的課程來解決這些問題。
本課程的組織結構。這一部分概述課程內容的結構,並討論授課老師如何有效地使用和講述課程材料。
本課程的適用人群。當我說“任何人”都可以學習本課程時,這裡的“任何人”其確切意義是什麼?
課程的目錄。如果你想直接就開始學習的話,可以跳過這部分。
致謝
與我聯系
為什麼要使用Web標准?
為什麼你一定要在進行Web設計和開發時使用Web標准,這將在第4篇文章中詳細闡述。但我在這兒先大概講一下,讓大家有個基本的了解。使用Web標准,有以下優點:
- 提高代碼的利用效率:當你學習完本課程後,你會發現Web標准使用的最佳習慣主要是關於代碼重用的。通過重用代碼,你可以將HTML內容和樣式信息(CSS)及行為信息(JavaScript)相分離,減小網頁體積,而且只需要寫一次代碼,以後在需要的地方再重用即可。
- 易於維護:這一點與上面所說的最後一點密切相關。如果你可以只寫一次HTML代碼,然後在需要應用樣式和行為的地方,使用類和函數。而以後,在你需要做出改動的時候,你可以只在一個地方修改,然後此修改就會自動應用到整個Web站點,而不再需要一處一處地修改。
- 提高可訪問性:以下的兩點密切相關。Web上的一個大問題就是,讓Web站點可以被每個人訪問,而不論他們身處何種環境。這包括要能讓殘疾人,包括盲人、視覺受損的人、和運動功能有障礙的人(如運動受限制,不能自如地用雙手或根本不能用雙手的人)等)也能訪問網站。通過使用Web標准和最佳的習慣,你可以使你的Web站點能被盡可能多的人訪問。
- 設備兼容性:此處的兼容性,指的是不僅要確保你的Web站點可以跨平台(如Windows、Mac、Linux),而且要能在其它的浏覽設備上工作,比如現在用的手機、電視、游戲控制台等。這些裝置在屏幕大小、處理能力、控制機制等方面都有一些局限性。不過你放心,通過使用Web標准和最佳的習慣,可以讓你的Web站點能在絕大多數裝置上顯示。要知道全球手機的數量多於個人電腦的數量,而且很多手機都是可以上網的,你或你的客戶怎能不去占領這個大市場呢。要想了解更多有關移動Web開發的信息,請訪問 dev.opera.com 。
- 網絡爬蟲/搜索引擎:在這裡,我指的是所謂的“搜索引擎優化”,即讓你的Web站點能盡可能多地被網絡爬蟲爬到,並且被索引,從而提高你的Web站點在 Google 等搜索引擎上的排名。這是一項專門的學問(參考關於搜索引擎優化的文章,如《更適用於搜索引擎優化的智能站點結構》、《HTML語義和搜索引擎優化》等)。同樣地,通過使用Web標准,你就可以讓你的站點在Google、Yahoo! 等搜索引擎上盡量靠前地顯示,這必將大大地促進你的業務。
盡管使用Web標准有以上諸多優點,但多數Web站點至今還尚未遵循Web標准,而且時至今日很多Web開發人員都還在使用過時的、不好的習慣。你會問“為什麼會出現這種情況呢?”。原因當然有很多,這包括缺乏教育和培訓、公司政策、不用學習標准也能領到薪水、學習太難、浏覽器所支持的標准等。以下我將逐一詳細分析這些原因,並批駁那些不采用或學習Web標准的借口。
- 缺乏培訓:這確實是一個問題,這也是我們開發本課程的主要原因之一。很多大學在它們的Web相關課程中都不教授Web標准,而且很多課程講述的內容也已經過時,由於官僚主義,這種情況還很難改變。培訓課程和書籍確實也花費昂貴,但現在我們已開發出這個免費的課程,並在大學裡推廣。“缺乏教育和培訓”再也不成其為不學習Web標准的借口了。
- 公司政策:無可否認,至今一些公司/機構依然維持其老式過時的Web站點,也許還制定有政策強迫其員工使用過時的浏覽器。但現在有了我們這個免費提供的課程,情況應該能得到改觀了。將Web站點進行升級,以達到當前的標准,這將促進公司升級它們所使用的浏覽器,這是因為用過時的浏覽器浏覽升級後的Web站點效果不佳(盡管還是可以浏覽)。公司還應該鼓勵它們的客戶也升級浏覽器。這樣做是有充分理有的,如上所述,使用了Web標准的站點,將有更靠前的搜索引擎排名,並能為更多的人,包括殘疾人和使用電腦以外裝置上網的人所訪問,公司怎能忽視這麼大的一個潛在客戶群呢?
- “我不需要學習Web標准”:我知道一些Web開發人員會這樣說:“我是在使用過時的方法開發Web站點,但我照樣領到工資,那我為什麼還要去費時費力地學習這個新東西呢?”我在以上部分已經講過,使用Web標准可以提高代碼的效率,使得寫代碼變得更為容易,並使Web站點更易於維護。此外,還可以使你能寫出可以在電腦以外的設備上顯示的代碼,這不很好嗎?學習Web標准,可以提升你的專業技能,並使你能掙到更多的錢。目前很多公司都需要懂Web標准的專業人員。
- “它太難學了”:廢話。在學習完本課程後,不論你是Web開發/設計方面的新手,還是需要進修的Web從業人員,都會發現要掌握使用Web標准的基本知識,其實是非常容易的。學習使用Web標准並不比使用老式過時的Web開發/設計方法更難,而且還能帶來那麼多益處。
- 浏覽器所支持的標准:過去有很多不同的浏覽器支持標准,這使得讓Web站點在不同的浏覽器下都能正常顯示,變成了一場惡夢。但那已是過去的事了,當今的浏覽器都支持應有的Web標准。一些老式浏覽器有時仍需要特別的支持標准,但通過使用當今最好的習慣,你可以確保那些老式浏覽器的用戶仍然可以獲得不錯的用戶體驗。
因此像你們已經了解到的一樣,真沒有任何借口在從事Web開發工作時不采用Web標准。從一個初學者的觀點來看,學習本課程至少可以讓你一開始就學習最好的習慣,而不需要還要費力地去拋棄那些過去不好的習慣。
我們一直以不屑的口吻談論那些過去不好的習慣,仿佛它們已是毫無用處的老古董了。的確,在本課程中我們不會教授這些不好的習慣,因為我們認為沒這個必要。我們認為學員一開始就應選擇正確的出發點。也許你們想知道這些過去不好的習慣究竟是怎麼樣的,下面我就簡要介紹一下。
在過去,人們在制作Web站點時,習慣於這樣做:把整個頁面通過一些巨大的表格進行布局,使用不同的表格單元格來定位圖像、文本等(不是真正的表格,而是向頁面添加冗余的標記)。他們習慣於使用不可見的空白GIF來調整頁面元素的定位(不是真正的GIF圖像,而是向頁面添加冗余的標記)。他們習慣於用JavaScript來生成那些飛舞的菜單(這對於那些已經在浏覽器中禁用JavaScript的人來說,一點好處也沒有,而對那些因視覺障礙而使用屏幕閱讀器的人來說,也會被這些JavaScript搞暈)。或者,寫一些僅能運行在一種浏覽器上的JavaScript(但對於那些使用其他浏覽器的人,該怎麼辦呢?)。他們習慣於在HTML的<font>元素中,直接插入樣式信息(但這將增加維護的難度,並且會使頁面中憑添多余的標記)。此外還有很多不好的習慣,最糟糕的是,雖然我上面說的是“過去的作法”,但現在有很多人還像以前一樣做。
Web開發本身就是一件雜亂無章的工作,而如果再沒有好的開發習慣,它就難上加難了。本課程所描述的Web標准和最佳習慣,將是你從事Web開發的最佳途徑。
課程結構
本課程由很多文章構成。在基礎課程完成時,將有50多篇文章,每篇文章的長度都為幾千個單詞。每篇文章的內容都集中在一個具體的主題上,一般將包括以下內容:該主題的背景知識、基本理論、實際例子、漫游教程,以及練習題。
此外,我們在未來還將推出全套教程,內容將覆蓋構建Web站點的全過程。
教授本課程適當的方式為:先確定你有多少堂課可以用於將本課程教完,然後除以文章的數量。在每堂課開始前,要求學員先通讀與該堂課相對應的文章,然後在課堂上討論實際的例子,並要求學員在課後做練習題。我認為只要讓學員在課前通讀了文章,講述每篇文章所包含的基本理念只需要1個小時就足夠了。大致說來,本課程需要50小時的授課時間,另需要50個小時的背景閱讀時間。
很顯然,你需要仔細想想教授完本課程需要多長時間,每堂課又需要具體講述些什麼。可以通過試講摸索出路子。
授課對象
這是一個有關Web標准的課程,由多篇文章組成,其主要授課對象為任何想從零開始學習基於Web標准的Web(網頁)設計的人。本課程的目標為:使一開始僅懂如何浏覽網頁的人,通過本課程的學習,熟練掌握CSS樣式和HTML語言,並了解JavaScript的基本知識及實際應用。通過學習,將可以使學員獲得進入工作市場所需要的足夠知識(當然工作經驗是無法教授的,需要自己積累)。
在我看來,授課對象是希望以“正確的方式”學習Web設計的任何人,包括:
- 大學/學院學生和老師:正如我已經指出的那樣,老師既可以利用本課程的全套文章創建自己的課程,並向學生講授;也可以將其中部分文章作為你自己課程的補充。而任何已經學過一些Web相關課程的學生,應當使用本課程的材料補充自己的知識,並勸說自己的老師也這樣做。我建議老師也把這些材料通讀一遍,以確保所教授的課程中含蓋的技術是當前的最佳規范。
- 大學預科/大學年齡的學生:盡管本課程主要是面向成人的,但中學生也還是可以從學習本課程中受益,可以嘗試學習本課程。
- 在職的Web設計者和開發者:有很多在職的Web設計者和開發者,尚未在工作中使用Web標准和最佳習慣,或是不能很容易就找到可用的參考資料,或不習慣更新自己的知識。我力勸前一類人一定學習一下本課程,以了解在工作中采用Web標准是多麼有價值且又是多麼容易。而對後一類人來說,我確信你們學習本課程也會有很大收獲,可以更新自己的知識和技能,溫習容易遺忘的知識,並使你獲得足夠的知識儲備,可用於說服你的雇主和客戶像Web站點的可訪問性這類要素有多麼重要。
- 公司內部的培訓人員:本課程是以低成本對員工進行培訓的理想方式。
- 其他個人:如果你是想學習Web設計和開發的個人,本課程也是你以低成本接受教育和培訓的理想方式。
本課程是依據知識共享許可協議而發行的,任何想使用的人都可以免費使用,只要承認本課程歸屬於我們即可。
目錄
請注意,迄今為止本課程下的39篇文章已經發布,還有10多篇文章也將盡快發布,組成完整的課程。
開始篇
- 序言,作者Chris Mills,就是您現在正讀的這篇。
Web標准導論
- 互聯網和Web的歷史,以及Web標准的演化,作者Mark Norman Francis
- 互聯網是如何運轉的?作者Jonathan Lane
- Web 標准所包括的模塊——HTML、CSS 和 JavaScript,作者 Jonathan Lane
- 夢想雖然很美,但實際上到底怎麼樣?作者Jonathan Lane
Web設計概念
這部分並不涉及代碼或標記的細節知識,而是在你開始創建任何圖形或代碼前,幫助你了解Web設計過程,以及Web設計的一些基本概念,如信息架構、導航、可用性等。
- 信息架構——規劃一個Web站點,作者Jonathan Lane
- 一個好的網頁需要什麼?作者Mark Norman Francis
- 色彩理論,作者Linda Goin
- 建立站點的線框圖,作者Linda Goin
- 配色方案和設計樣板,作者Linda Goin
- 網頁排版,作者Paul Haine
HTML基礎
- HTML 基礎知識,作者Mark Norman Francis
- HTML 的 <head> 元素,作者Christian Heilmann
- 為你的 HTML 文檔選擇適當的文檔類型,作者Roger Johansson
HTML正文
- 在 HTML 中標記文本內容,作者Mark Norman Francis
- HTML 列表,作者Ben Buchanan
- HTML中的圖像,作者Christian Heilmann
- HTML鏈接——讓我們建一張網吧!作者Christian Heilmann
- HTML表格,作者Jen Hanen
- HTML表單基礎知識,作者Jen Hanen
- 罕為人知的語義元素,作者Mark Norman Francis
- 通用容器--div 和span元素,作者Mark Norman Francis
- 使用導航菜單創建多頁面,作者Christian Heilmann
- 檢驗你的HTML,作者Mark Norman Francis
可訪問性
- 可訪問性基礎知識,作者Tom Hughes-Croucher
- 可訪問性測試,作者Benjamin Hawkes-Lewis
CSS樣式
- CSS 基礎知識,作者Christian Heilmann
- 繼承和層疊,作者Tommy Olsson
- 使用CSS設置文本樣式,作者Ben Henick
- CSS布局模型——boxes、borderes、margins、padding,作者Ben Henick
- CSS背景圖片,作者Nicole Sullivan
- 樣式列表和鏈接,作者Ben Buchanan
- 樣式表格,作者Ben Buchanan
- 樣式表單,作者Ben Henick
- 浮動及清除,作者Tommy Olsson
- CSS的靜態和相對定位,作者Tommy Olsson
- CSS 的絕對和固定定位,作者Tommy Olsson
JavaScript 的文章
即將發布...
補充文章
將你的內容發布到網上,作者Craig Grannell.
有關文檔中 <head> 元素的更多知識,作者Chris Heilmann.
補充材料:用於排版的通用HTML實體,作者Ben Henick.
Opera公司Web標准課程詞匯表,由多人撰寫。本目錄尚不完整,將隨時添加。
致謝
在開發本課程的過程中,有非常多的人曾給予我幫助,也許無法一一列出他們的名字,但我希望在這裡能已列出他們每個人的名字。他們都是一些傑出的人,我建議你們去聽他們的講座、買他們寫的書、閱讀他們的博客,或者以其他方式給予他們支持。我向你們致以感謝和敬意。我要感謝:
- 文章的
我始終希望更可能多的人能給我提供意見和建議,以讓我能改進本課程。如果你對如何改進本課程有任何建議,或是有任何評論,或是希望某個地方推廣本課程,都請與我聯系。我的E-mail是:cmills[at]opera.com 。 你也可以點擊每篇文章頁首的鏈接(“討論本篇文章”),發表你對文章的評論。為參與討論,你需要一個 my.opera 賬戶。