0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

你們知道前端大神是怎么學CSS的嘛

算法與數(shù)據(jù)結(jié)構(gòu) ? 來源:算法與數(shù)據(jù)結(jié)構(gòu) ? 2023-05-30 11:26 ? 次閱讀

有人說,要成為前端高手很容易:先學好 HTML/CSS/JavaScript 三劍客,再學會三大前端框架——Vue/React/Angular,快則三個月,慢則半年,前端的工作就沒有搞不定的了。

但實際上,會語言、會用框架就算是一名優(yōu)秀的前端程序員嗎?

其實這是一個認知誤區(qū),框架的能力不代表前端程序員的能力。遺憾的是,不少前端程序員在工作中遇到瓶頸之后,就將自己的困境歸咎于公司管理或者行業(yè)大環(huán)境,卻不從自身找問題。

雖然前端技術(shù)門檻低,但也極具深度,要成為真正的高手并不容易。要突破只會使用框架的水平,還要深入學習語言。

CSS是 HTML/CSS/JavaScript 三劍客中相對簡單的,但把它用好了能使效率倍增。有一位前端大神對CSS進行深入研究,挖掘出許多有用的特性,刷新了前端程序員的認知:原來CSS也可以這么玩!

現(xiàn)在,我們就跟著大神一起學CSS,走向高手之路吧。

01

大神是怎么學CSS的

張鑫旭,目前在閱文集團用戶體驗設計部(YUX) 擔任前端技術(shù)專家 ,他主導開發(fā)的LuLu UI是一款面向桌面端和移動端網(wǎng)頁開發(fā)的開源組件庫,支持多個千萬級PV的大型項目。他的前端功力甚是了得,是國內(nèi)公認的大神級程序員。

張鑫旭從 2009 年開始寫原創(chuàng)技術(shù)文章,至今已創(chuàng)作了 800 多篇文章,年訪問量接近千萬次。在他的個人博客上,就有對 CSS 技術(shù)長達十多年探索的記錄,影響了許多前端程序員的技術(shù)發(fā)展之路。

提到對CSS的學習,張鑫旭認為首先要理解這門語言的特殊性。CSS是一門建立在規(guī)則上的語言,和注重邏輯性的編程語言是不同的。習慣使用C/C++/Java的程序員,在初次接觸CSS時可能會將其看作一張大號的配置表,認為它的作用就是把網(wǎng)頁屬性單獨保存出來而已。

這樣就限制了對CSS的進一步認識,忽視了它在特性間建立聯(lián)系的能力。如何體系化地看待CSS語言?張鑫旭將多年的學習心得和工作經(jīng)驗總結(jié)出來,以魔法世界來類比,從宏觀上說明CSS的結(jié)構(gòu)與特征。

在CSS世界中,HTML是魔法石,選擇器是選擇法器,CSS屬性是魔法師,屬性值是魔法技能。不同的瀏覽器就是獨立的王國,它可以決定是否允許使用魔法石(HTML 標簽屬性)、是否允許新魔法師“入籍”(CSS3新屬性)、是否允許魔法師使用某些新技能(CSS新屬性值)。

操作系統(tǒng)是王國所在的世界,不同的操作系統(tǒng)就像平行的世界。例如在Windows上,edge瀏覽器最強大;在OS X與iOS上,統(tǒng)治者是Safari;在 Android上,WebKit就是王。

這樣一看,CSS的世界立即鮮活起來,不再是靜態(tài)割裂的配置,而是與HTML一同構(gòu)成的整體。在這個世界里,CSS選擇器是支柱,接下來讓我們跟著張大神深入CSS 選擇器的世界吧。

02

CSS選擇器:CSS世界的支柱

我們先來了解一些基本概念。CSS選擇器可以分為4種,下面逐一說明:

  1. 選擇器:CSS聲明塊前的標簽、類名等。例如body { font: menu; }

  2. 選擇符:有5種,分別是表示后代關(guān)系的空格( )、表示父子關(guān)系的箭頭(>)、表示相鄰兄弟關(guān)系的加號(+)、表示兄弟關(guān)系的波浪線(~),以及表示列關(guān)系的雙管道(||);

  3. 偽類:名稱前以冒號(:)分隔,通常與瀏覽器行為和用戶行為相關(guān)聯(lián),偽類和選擇符相互配合可以實現(xiàn)非常多的純CSS交互效果;

  4. 偽元素:名稱前以兩雙冒號(::)分隔,可用于設置元素指定部分樣式。常用選項有 ::before、::after、::first-letter 和::first-line 等。

CSS世界的支柱由上述4種選擇器構(gòu)成,它們與HTML結(jié)構(gòu)、瀏覽器行為、用戶行為相互依存和作用。在不斷的碰撞下,將CSS選擇器強大的功能發(fā)揮出來。

對一些前端程序員來說,CSS選擇器不過“就那么點東西”。如果他們聽說有人專門為 CSS選擇器技術(shù)寫了一本書,估計會瞪大眼睛問:“這有什么好寫的?”

張鑫旭一定會很有禮貌地遞過去一本《CSS 選擇器世界(第2版)》,然后謙虛地說:“看看我寫的這本書,里面的知識有沒有你不知道的?”

點擊,即可購書

如果只掌握常用的幾個基礎選擇器,也可以把頁面做出來。但這樣做事,就好像手里拿把錘子,看什么都是釘子一樣。而前端技術(shù)是一個快速發(fā)展的領域,指望一年經(jīng)驗重復用十年是不現(xiàn)實的。

比方說,有時為了實現(xiàn)一個復雜的交互行為,辛辛苦苦寫了幾百行JavaScript代碼,結(jié)果CSS只用一行代碼就能搞定,這就是知道和不知道的差距。

《CSS選擇器世界(第2版)》并不是窮舉所有CSS選擇器的說明書,而是以一種體系化的方式梳理CSS選擇器知識。同時張大神結(jié)合自己多年工作中踩過的坑,給出了許多含金量超高的最佳實踐建議。

所以這不是一本簡單的入門書,一些前端老人都未必全都知道里面的知識。對追求進步,想要突破技術(shù)瓶頸的前端程序員來說,本書是非常好的進階之路。

03

飛速發(fā)展的CSS

CSS規(guī)范由W3C組織維護更新,伴隨著互聯(lián)網(wǎng)從桌面端到移動端的發(fā)展,CSS規(guī)范也在快速地推陳出新。為了適應Web技術(shù)發(fā)展的要求,CSS工作組決定從CSS2.1開始將CSS按特性劃分為獨立的模塊,這些模塊按自己的進度去實現(xiàn)標準化。

這使得從形式上來說,CSS3并沒有一個具體的標準,而是由不斷擴充的模塊構(gòu)成的標準集合。CSS工作組會定期發(fā)布成熟模塊組的快照表,對前端程序員來說,要保持對CSS標準的敏感度,追蹤最新的技術(shù)進展。

張鑫旭在十多年的研究過程中,對CSS標準密切關(guān)注,時時更新自己的知識體系。他在創(chuàng)作《CSS選擇器世界》的過程中,不僅要盡可能地囊括有潛力的新特性,還要保持技術(shù)前瞻性,確信所選特性在未來會有廣泛的影響。

所以,在《CSS 選擇器世界》第1版于 2019 年出版之后不到3年時間,張鑫旭又對原有內(nèi)容進行了大幅修改,推出了《CSS選擇器世界(第2版)》。在第1版的基礎上,第2版對選擇器的特性、兼容性進行了更新,介紹了標準中新增的多個選擇器。

其中新增的:has()偽類讓張大神翹首以盼了十幾年,因為它可以實現(xiàn)真正意義上的父選擇器效果。本書還介紹了支持音視頻開發(fā)的選擇器,使得富媒體開發(fā)更加便捷。另外,張鑫旭將這幾年積累的最新的經(jīng)驗也一并寫到了第2版中。

張鑫旭自己也在《CSS選擇器世界(第2版)》的前言中感嘆:

“CSS的發(fā)展太快了。不過這也是前端技術(shù)的特點,如果感覺自己有點找不著北,那就不妨跟隨大神的腳步一起前進吧?!?/span>

04

CSS三部曲的世界

除了《CSS選擇器世界(第2版)》,張鑫旭另外還創(chuàng)作了《CSS世界》和《CSS 新世界》,合稱為“CSS 世界三部曲”。

這是張鑫旭給前端程序員貢獻的一套CSS 寶藏,可以說啃下三部曲,CSS就能達到最佳實踐、信手拈來的水平。

《CSS世界》以“流”為線索,全面深入地講解從結(jié)構(gòu)、內(nèi)容到美化等方面的大量知識點,是CSS世界的基礎?!禖SS新世界》則對CSS3之后的上百個新特性進行了介紹,分享了張大神諸多獨門心法。

《CSS世界》和《CSS新世界》相互補充,《CSS世界》中講解的都是CSS2.1的知識,《CSS新世界》講解的都是CSS2.1之后的知識,再加上《CSS選擇器世界(第2版)》,這3本書中的內(nèi)容一起構(gòu)成CSS這門語言的完整面貌。

前端技術(shù)領域發(fā)展快,各種框架層出不窮,這也是讓前端程序員產(chǎn)生職業(yè)倦怠的原因之一。但這不能成為前端程序員原地停留的借口,我們應該一面深挖技術(shù)根本,一面積極擁抱變化。

跟著張鑫旭大神練好CSS,成為前端高手吧!


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 前端
    +關(guān)注

    關(guān)注

    1

    文章

    190

    瀏覽量

    17709
  • HTML
    +關(guān)注

    關(guān)注

    0

    文章

    277

    瀏覽量

    34153
  • javascript
    +關(guān)注

    關(guān)注

    0

    文章

    515

    瀏覽量

    53753
  • CSS
    CSS
    +關(guān)注

    關(guān)注

    0

    文章

    109

    瀏覽量

    14340

原文標題:前端大神是怎么學CSS的?

文章出處:【微信號:TheAlgorithm,微信公眾號:算法與數(shù)據(jù)結(jié)構(gòu)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    158 初學css,你了解過BFC?

    前端CSS
    小凡
    發(fā)布于 :2022年08月29日 09:17:08

    各位大神你們是怎么學會單片機的?

    由于工作3天2頭看看,真的好杯具;我不知道是我的C的很惡心還是天生就不適合單片機;我現(xiàn)在寫程序很難下手也沒有死路,也不知道從哪開始;說說你們
    發(fā)表于 08-24 18:38

    小程序來臨,前端工程師的春天

    小程序來臨,前端工程師的春天● ● ●?一夜之間,關(guān)于小程序(應用號)的文檔、截圖鋪天蓋地襲來。拿到內(nèi)測權(quán)限的公眾號,祝你們可以享受到這其他人觸不可及的紅利。?為了防止還有人沒看過,再放一次它的簡介
    發(fā)表于 09-28 23:32

    css的性能優(yōu)化重點

    網(wǎng)站前端性能優(yōu)化之javascript和css
    發(fā)表于 10-21 09:12

    前端開發(fā)需要學習什么?學習路線規(guī)劃

    前端開發(fā)需要學習什么?相信這個問題是在web前端學習路上的小伙伴們都想知道的。想入行IT,對于沒有基礎的人來說,先學習前端是最好的,前端的趣
    發(fā)表于 06-30 11:05

    關(guān)于CSS的小技巧你都知道哪些

    關(guān)于CSS的小技巧你都知道哪些?
    發(fā)表于 10-22 08:55

    css3按鈕特效

    css3按鈕特效css3按鈕特效css3按鈕特效css3按鈕特效css3按鈕特效css3按鈕特效
    發(fā)表于 05-24 14:14 ?0次下載

    CSS工程化實踐成果分析

    作為Web開發(fā)的重要組成部分,CSS技術(shù)演進也在推動著前端工程化不斷進步。本文將從CSS模塊化、namespace約束、CSS in JS方案三個方面逐步深入解讀
    發(fā)表于 09-27 15:10 ?0次下載

    盤點5大主流CSS框架,你知道哪些

    作為開發(fā)工具,CSS框架一直處于不斷進化和改進的狀態(tài),因此我們強烈建議您關(guān)注眼下的趨勢。這篇文章會帶您了解2017年最流行的5種CSS框架。
    發(fā)表于 10-29 11:21 ?1.1w次閱讀

    你們見過電阻的橫截面?

    1、這是電阻器的橫截面!你們見過2、這水平到底是有多高?佩服3、看到有位老哥用衣服做了個抱枕,這是對樹莓派
    的頭像 發(fā)表于 05-11 10:33 ?5764次閱讀

    CSS框架:UIKit的優(yōu)缺點

    UIKit是一個模塊化的輕量級前端CSS框架。它非常適合于快速開發(fā)那些功能強大的Web界面。憑借著CSS、HTML和JS組件的全面集合,它能夠讓前端框架既容易擴展,又方便被定制使用。U
    的頭像 發(fā)表于 07-01 16:30 ?3506次閱讀

    CSS框架:Tachyons的優(yōu)缺點

    與其他流行的前端框架不同,Tachyons旨在將CSS規(guī)則分解為小型的、可管理的、以及可復用的部件。Tachyons可以幫助開發(fā)人員創(chuàng)建出具有高度可讀性、能夠快速加載和響應的網(wǎng)站,而且無需使用大量CSS代碼。
    的頭像 發(fā)表于 07-01 16:57 ?3781次閱讀

    前端需要什么開發(fā)語言?如何掌握?

    前端開發(fā)語言有哪些?需要掌握什么?通常前端開發(fā)在基礎階段掌握html+css+js+jq;框架語言階段掌握vue+react+小程序;后端掌握nodejs+mongdb+云開發(fā);UI框架階段熟悉常見的有elementui+ang
    的頭像 發(fā)表于 01-03 15:25 ?5909次閱讀

    如何優(yōu)雅的寫css代碼

    CSS(全稱 Cascading Style Sheets,層疊樣式表)為開發(fā)人員提供聲明式的樣式語言,是前端必備的技能之一,基于互聯(lián)網(wǎng)上全面的資料和簡單易懂的語法,CSS 非常易于學習,但其知識點
    的頭像 發(fā)表于 01-03 15:00 ?703次閱讀

    寬帶,貓,路由器你們知道是啥

    許多人知道在寬帶家庭中,互聯(lián)網(wǎng)需要路由器,但他們不知道哪個路由器在工作,或者不知道該路由器與Cat不同,因為在過去的幾年中,當不使用路由器時,我們應該使用“cat””那么路由器和“貓”有什么區(qū)別?
    的頭像 發(fā)表于 04-03 14:57 ?4640次閱讀
    寬帶,貓,路由器<b class='flag-5'>你們</b><b class='flag-5'>知道</b>是啥<b class='flag-5'>嘛</b>