從接觸網站開發以來到現在,已經有五個年頭了吧,今天偶然整理電腦資料看到當時為參加系裡面一個比賽而做的第一個網站時,勾起了在這網站開發道路上的一串串回憶,成功與喜悅、煩惱與糾結都歷歷在目,感慨頗多。 先從大家學習上的一個誤區開始談起。 Web前端的學習誤區 網頁製作是電腦專業同學在大學期間都會接觸到 ...
從接觸網站開發以來到現在,已經有五個年頭了吧,今天偶然整理電腦資料看到當時為參加系裡面一個比賽而做的第一個網站時,勾起了在這網站開發道路上的一串串回憶,成功與喜悅、煩惱與糾結都歷歷在目,感慨頗多。
先從大家學習上的一個誤區開始談起。
Web前端的學習誤區
網頁製作是電腦專業同學在大學期間都會接觸到的一門課程,而學習網頁製作所用的第一個集成開發環境(IDE)想必大多是Dreamweaver,這種所見即所得的“弔炸天”IDE為我們製作網頁帶來了極大的方便。
入門快、見效快讓我們在不知不覺中已經深深愛上了網頁製作。此時,很多人會陷入一個誤區,那就是既然藉助這麼帥的IDE,通過滑鼠點擊菜單就可以快速方便地製作網頁。
那麼我們為什麼還要去學習HTML、CSS、JavaScrpt、jQuery等這些苦逼的代碼呢?這不是舍簡求繁嗎?
但是隨著學習的深入,就會發現我們步入了一種窘境——過分的依賴IDE導致我們不清楚其實現的本質,知其然但不知其所以然。
因此在頁面效果出現問題時,我們便手足無措,更不用提如何進行頁面優化以及完成一些更高級的應用了。其原因是顯而易見的——聰明的IDE成全了我們的惰性,使我們忽略了華麗的網頁背後最本質的內容——code。
正確的方向勝過無謂的努力
有兩隻螞蟻想翻越一段牆,尋找牆那頭的食物。一隻螞蟻來到牆腳就毫不猶豫地向上爬去,可是每當它爬到大半時,就會由於勞累、疲倦而跌落下來。雖然它不氣餒,一次次跌下來,又迅速地調整一下自己,重新開始向上爬去。
另一隻螞蟻觀察了一下,決定繞過牆去。很快,這隻螞蟻繞過牆來到食物前,開始享受起來;而另一隻螞蟻還在不停地跌落下去又重新開始。
很多時候,成功除了勇氣、堅持不懈外,更需要方向。也許有了一個好的方向,成功來得比想象的更快。如果在錯誤的路上奔跑,再怎麼努力也是白搭。學習Web前端也是如此,首先應該選擇一個正確的學習路線。
Web前端的學習路線 結合我的學習經歷、近年來輔導學生的經驗以及公司中實際項目的需求,在這裡將Web前端的學習分為以下幾個階段,具體的學習路線圖如圖所示:
第一階段——HTML的學習
超文本標記語言(HyperText Mark-up Language 簡稱HTML)是一個網頁的骨架,無論是靜態網頁還是動態網頁,最終返回到瀏覽器端的都是HTML代碼,瀏覽器將HTML代碼解釋渲染後呈現給用戶。因此,我們必須掌握HTML的基本結構和常用標記及屬性。
HTML的學習是一個記憶和理解的過程,在學習過程中可以藉助Dreamweaver的“拆分”視圖輔助學習。在“設計”視圖中看效果,在“代碼”視圖中學本質,將各種視圖的優勢發揮到極致,這種對照學習的方法彌補了單純識記HTML標簽和屬性的枯燥乏味,想必對各位初學的小盆友們來說必定是極好的!
在學習了HTML之後,我們只是掌握了各種“原材料”的製作方法,要想蓋一幢樓房就還需要把這些“原材料”按照我們設計的方案組合佈局在一起併進行一些樣式的美化。(web前端學習交流群:328058344 禁止閑聊,非喜勿進!)
於是進入第二個階段——CSS的學習
CSS是英文Cascading Style Sheets的縮寫,叫做層疊樣式表,是能夠真正做到網頁表現與內容分離的一種樣式設計語言。相對於傳統HTML的表現而言其樣式是可以復用的,這樣就極大地提高了我們開發的速度,降低了維護的成本。
同時CSS中的盒子模型、相對佈局、絕對佈局等能夠實現對網頁中各對象的位置排版進行像素級的精確控制。通過此階段的學習,我們就可以順利完成“一幢樓房”的建設。
“樓房”建設完成之後,我們可以交給用戶使用,但是如果想讓用戶獲得更佳的體驗,我們還可以對“樓房”進行更深一步的“裝修”,讓它看起來更“豪華”一些。
為了完成這個任務,我們進入第三個階段——Java的學習
Java是一種在客戶端廣泛使用的腳步語言,在Java當中為我們提供了一些內置函數、對象和DOM操作,藉助這些內容我們可以來實現一些客戶端的特效、驗證、交互等,使我們的頁面看起來不那麼呆板,屌絲瞬間逆襲高富帥!有麽有?
此時,也許你還沉浸在Java給你帶來的驚喜之中,但你的項目經理卻突然對你大吼道
“這個效果在××瀏覽器下不相容,重新搞……”
“不相容?”瞬間石化了有木有?
“我擦,坑爹啊!那可是花了我一個晚上寫了幾百行代碼搞定的啊,吐血了都!”
Java的相容性和複雜性有時候的確讓我們頭疼,還好有“大神”幫我們做了封裝。
接下來我們進入第四個階段——jQUery的學習
jQuery是一個免費、開源的輕量級的Java庫,並且相容各種瀏覽器(jQuery2.0及後續版本放棄了對IE6/7/8瀏覽器的支持),同時現在有很多基於jQuery的插件可供選擇,這樣在我們實現一些豐富的動態效果時更方便快捷,大大節省了我們開發的時間,提高了開發速度,這也充分體現了其write less,do more的核心宗旨。這個Feel倍兒爽!有麽有?
“豪華大樓”至此拔地而起,但是每天這樣日復一日,年復一年的蓋樓,好繁瑣!能不能將大樓裡面每一個單獨部件模塊化,當需要蓋樓時就像堆積木一樣組合在一起,這樣豈不是爽歪歪?可以實現嗎?答案是肯定的。
這種思想在Web前端開發中也是適合的,於是乎就出現了各種前端框架,在這裡推薦給大家的是Bootstrap。 Bootstrap是Twitter推出的一個開源的用於前端開發的工具包,是一個CSS/HTML框架,並且支持響應式佈局。一經推出後頗受歡迎,一直是GitHub上的熱門開源項目。
在項目開發過程中,我們可以藉助Bootstrap提供的CSS樣式、組件、Java插件等快速的完成頁面佈局和樣式設置,然後再有針對性的微調樣式,這樣基於框架進行開發大大縮短了開發周期。站在巨人的肩膀上就是爽!
Web前端的學習建議
最後給大家聊聊在學習Web前端中的一些建議和方法。
在CSS佈局時需要註意的一個問題是很多同學缺乏對頁面佈局進行整體分析,不能夠從巨集觀上對頁面中盒子間的嵌套關係進行把握,就急於動手去做,導致頁面中各元素間的關係很混亂,容易出現盒子在浮動時錯位等情況。建議大家在佈局時採用“自頂向下,逐步細化”的思想,先用幾個盒子將頁面從整體上劃分,然後逐步在盒子中繼續嵌套盒子。
利用好Firebug這個利器。Firebug一方面可以在我們學習過程中幫助我們調試自己的頁面,另一方面我們可以使用Firebug方便地查看、分析別人網站的源代碼,“偷”也是一種技能!
“君子生非異也,善假於物也”,在學習的過程中還要多瀏覽一些優秀的網站,善於分析借鑒其設計思路和佈局方法,見多方能識廣,進而才可以融會貫通,取他人之長為我所用。