我已經(jīng)在網(wǎng)站上工作了幾年,無論是專業(yè)的還是業(yè)余項(xiàng)目。有一天,我反思了這樣一個(gè)事實(shí):我所有的 Web 開發(fā)教育都來自實(shí)際制作網(wǎng)站。在大多數(shù)情況下,我會(huì)有一個(gè)特定的問題,谷歌如何解決它,并在這個(gè)過程中學(xué)習(xí)新的東西。
我想知道我從未全面學(xué)習(xí) HTML 錯(cuò)過了什么。忘記 CSS 和 JavaScript。我只是在談?wù)撛?HTML。在獲得了相當(dāng)多的經(jīng)驗(yàn)之后再回到 Web 開發(fā)的這樣一個(gè)基本方面似乎很愚蠢,但是很容易僅僅因?yàn)槟雷銐蚨嗟闹R來做一些有用的事情就對一項(xiàng)技能過度自信。
所以我決定重新學(xué)習(xí) HTML 并發(fā)現(xiàn)我未知的未知數(shù)。
經(jīng)驗(yàn)
對于上下文,我在中學(xué)時(shí)為一個(gè)班級項(xiàng)目制作了我的第一個(gè)網(wǎng)站。我們學(xué)習(xí)了基本的 HTML,嵌入 MP3 歌曲感覺就像魔術(shù)一樣。但是直到大學(xué)我才再次接觸 Web 開發(fā)。我制作了一個(gè)名為The Daily Lore的輕量級新聞聚合器 ,它仍在運(yùn)行(我保留了原始版本)。
從那以后,我在兩個(gè)專業(yè)的網(wǎng)站上工作過,一個(gè)是非營利性網(wǎng)站,一個(gè)是個(gè)人網(wǎng)站,還有一些是做業(yè)余 項(xiàng)目的小網(wǎng)站,比如Make a README。
HTML5 簡介
我不認(rèn)為自己是基于這種經(jīng)驗(yàn)的 Web 開發(fā)專家,但我肯定比Coursera的HTML5 入門課程的典型學(xué)生擁有更多的知識 。我開始這門課程時(shí)就希望了解很多內(nèi)容,因?yàn)樗菫闆]有編程背景的完全初學(xué)者設(shè)計(jì)的。
我并不打算以 HTML 大師的身份從這次經(jīng)歷中走出來,而且我仍然需要應(yīng)用我所學(xué)到的知識(包括在這個(gè)網(wǎng)站上),但我發(fā)現(xiàn)僅僅了解可用的內(nèi)容是很有用的。盡管我不記得有關(guān)使用圖片 元素的所有細(xì)節(jié) ,但我知道它現(xiàn)在存在,并且我可以在以后的實(shí)施過程中隨時(shí)查找細(xì)節(jié)。這與根本不知道它和<img>在所有情況下使用普通是一個(gè)絕對的區(qū)別,因?yàn)槲也恢栏谩?/p>
當(dāng)我閱讀文檔時(shí),它不斷讓我思考 HTML 應(yīng)該如何發(fā)展的問題。瀏覽器不斷獲得越來越多的功能,以至于它們變得越來越像操作系統(tǒng)。甚至還有一個(gè)用于連接藍(lán)牙設(shè)備的實(shí)驗(yàn)性API。
維基百科是 HTML 最初設(shè)計(jì)目的的完美網(wǎng)站:主要是通過超鏈接連接的靜態(tài)文檔。但是現(xiàn)在我們使用瀏覽器來交付完整的應(yīng)用程序,例如 Figma,它是一種設(shè)計(jì)工具,通過將 C++ 代碼編譯為 WebAssembly來有效地在瀏覽器中運(yùn)行 C++ 代碼。
HTML 添加了一些元素和屬性,使無需 JavaScript 即可進(jìn)行交互。例如, details 元素創(chuàng)建了一個(gè)可以在打開和關(guān)閉狀態(tài)之間切換的小部件。
但是隨著您的用例變得更加先進(jìn),僅僅依賴 HTML 提供的內(nèi)容很快就會(huì)變得困難。例如, Bootstrap的進(jìn)度條不使用HTML 進(jìn)度 元素。
Web Components 似乎正在獲得一些動(dòng)力。 GitHub已經(jīng)開始使用它們,并將它們的組件發(fā)布到 WebComponents.org。
結(jié)論
經(jīng)過幾年的 Web 開發(fā),很容易對 HTML 充滿信心。然而,我發(fā)現(xiàn)回去以更嚴(yán)格的方式學(xué)習(xí)它有很多價(jià)值。我了解了我可以對我工作的網(wǎng)站進(jìn)行的許多改進(jìn),并且我對 HTML 及其開發(fā)方式有了更好的大局觀。雖然我仍然認(rèn)為邊做邊學(xué)非常有效,但這次經(jīng)歷讓我想回去用自下而上的方法重新學(xué)習(xí)其他東西。