我們可以使用CSS變量嗎?
所有談?wù)撟罱K于能夠使用CSS網(wǎng)格,它引發(fā)了我的思考:我可以其他驚人的CSS功能現(xiàn)在用的嗎?CSS變量是一個(gè)瞬間出現(xiàn)在腦海。
這是自從我聽說過CSS變量的任何東西,它增加了一個(gè)全新的工具和思維方式對(duì)前端開發(fā),讓我興奮了一會(huì)兒。
在CSS變量復(fù)習(xí)
CSS變量廝混了幾年了但似乎沒有廣泛使用。隨著預(yù)處理器如SASS的普及,前端開發(fā),變癢了很久。
我第一次興奮的CSS變量在2014左右,此后他們浸在我的興趣范圍。我現(xiàn)在只考慮讓他們到生產(chǎn)現(xiàn)場(chǎng),我將向你展示他們是多么簡(jiǎn)單和容易使用。
變量聲明
聲明的自定義屬性很簡(jiǎn)單:我們只需要?jiǎng)?chuàng)造我們想要的屬性,它的開始添加兩個(gè)破折號(hào)。這些可以宣布不加入他們 :根似乎是目前的一個(gè)很好的方法。
我的可重復(fù)使用的價(jià)值:20px;
訪問變量
使用屬性很簡(jiǎn)單也。我們?cè)L問過var()功能和使用性能,我們聲明以上。
填料:VAR(--我的可重復(fù)使用的價(jià)值);
這不是簡(jiǎn)單的光輝?
CSS變量直接使用,很容易記住。用CSS變量最大的挑戰(zhàn)(如大多數(shù)CSS)是知道正確的時(shí)間和地點(diǎn)使用它們。扔在地是一個(gè)萬(wàn)無(wú)一失的方法來創(chuàng)建一個(gè)混亂的樣式表,這些變量被調(diào)試可能會(huì)變得更加困難。
使用適當(dāng)?shù)氖褂们闆r和策略應(yīng)考慮,這就是你的大部分精力應(yīng)該集中。
一個(gè)有趣的用例 響應(yīng)模塊:
在下面的例子中我將向你展示如何建立基本我目前使用Sass變量響應(yīng)組件的例子。然后我會(huì)告訴你如何可以改進(jìn)與的方式,是不可能與一個(gè)預(yù)處理器的CSS變量。這是一個(gè)特定的使用情況下,不適用于使用各種方式的變量是如何CSS變量可用于不同。
SASS的例子
看到筆CSS變量–響應(yīng)用例沒有CSS變量由亞當(dāng)·休斯(“lostmybrain)上CodePen。
當(dāng)使用SASS有幾種不同的方法,我試過。我經(jīng)常去的版本是將媒體查詢?cè)贑SS塊我想改變。在這里我可以用一個(gè)變量,標(biāo)準(zhǔn)的CSS,混合或延長(zhǎng)修改該元素沒有散射的風(fēng)格的成分都。
這一問題是有多個(gè)媒體查詢和一種相關(guān)但不是變量很多。我可以使用地圖的變量會(huì)給更多的組織,但我認(rèn)為主要的問題是,我們使用一種多變量定義一個(gè)屬性。這只是感覺不對(duì)。
Sass變量用于時(shí)間提前,這意味著我們必須計(jì)劃每一方面我們要使用它們。他們使開發(fā)更容易,但技術(shù)上沒有提供任何新的超級(jí)大國(guó)。
CSS變量的救援
看到筆CSS–響應(yīng)變量的使用情況由亞當(dāng)·休斯(“lostmybrain)上CodePen。
CSS變量不需要申報(bào)前,它們是動(dòng)態(tài)的。這是有用的在一個(gè)非常不同的方式。我們現(xiàn)在可以有條件地改變變量從任何地方,如媒體查詢具體的語(yǔ)境。
通過為我們的媒體查詢方式就從我們可以減少媒體查詢響應(yīng)量分散在造型。它還提供了一個(gè)很好的清潔方式看,一般間距和字體樣式在不同的格式。
我認(rèn)為敏感的設(shè)計(jì)主題是CSS變量?jī)蓚€(gè)優(yōu)秀的用例,但有如此多的可能性。
如何不同于Sass變量CSS變量?
Sass變量和CSS變量是不同的兩個(gè)野獸,各有自己的親的和反對(duì)的。
Sass變量可以有更好的
由于SASS的普及和青菜更多的編程的性質(zhì),深入組織模式更隨著時(shí)間的演變。我特別喜歡薩斯地圖結(jié)合相似類型的變量到地圖。顏色、尺寸和快捷方式的路徑似乎是受歡迎的選擇,包括地圖。
因?yàn)镃SS變量的最佳實(shí)踐尚未進(jìn)化相對(duì)較小的用法。地圖和陣列不可能以同樣的方式,這些新的組織模式,在CSS中要?jiǎng)?chuàng)新,以不同的方式解決問題以薩斯。
CSS變量可以動(dòng)態(tài)改變
CSS變量是通過瀏覽器在運(yùn)行時(shí)動(dòng)態(tài)處理而非變量時(shí)所使用的CSS編寫。
這是核心賣點(diǎn)的CSS變量為我。它將看到人們?nèi)绾问褂眠@個(gè)功能,隨著時(shí)間的推移,是否會(huì)辜負(fù)其潛在的有趣。
CSS的變量是一個(gè)標(biāo)準(zhǔn)的瀏覽器功能
我個(gè)人的意見,更多的事情我們可以去除<em>WebPACK</em>,<em>吞咽</em>,和<em>任何新的框架是現(xiàn)在</em>,更好的。有有趣的新瀏覽器的特性,意味著我們不需要編譯的JavaScript框架做開發(fā)商的感覺是必不可少的。我斗膽猜測(cè),前端開發(fā)高比例使用變量在CSS的一種或另一種方式,所以每個(gè)人都使用這個(gè)核心特征似乎是明智之舉。這意味著在構(gòu)建步驟少一點(diǎn)(我想我們都能同意是很巨大的這些天)和整個(gè)網(wǎng)絡(luò)的一致性比較。
支撐著 是什么樣的?
支持正在顯著好有一個(gè)明顯的例外:IE 11。大多數(shù)現(xiàn)代瀏覽器支持CSS變量具有一些缺陷邊緣。
78.11%這是高比CSS網(wǎng)格(在寫作的時(shí)候)但是,IE11支持可能是一個(gè)問題。
因此,我們可以使用CSS變量嗎?
我想現(xiàn)在是時(shí)候了。IE11支持,是不會(huì)得到任何更好,我們知道從以前版本的Windows,它需要一些人來升級(jí)很長(zhǎng)時(shí)間。但在現(xiàn)代瀏覽器的支持是偉大的,我們應(yīng)該尋找的CSS變量和實(shí)驗(yàn)的可能性。
這并不意味著我們不應(yīng)該忘記我們的責(zé)任,雖然舊的瀏覽器支持。使用支持標(biāo)簽基本后備系統(tǒng),甚至一個(gè)polyfill,舊的瀏覽器應(yīng)該考慮,即使你的網(wǎng)站實(shí)際使用更多的偏向于老的瀏覽器。