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