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