国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > CSS > 正文

深入解析CSS中的自定義屬性

2024-07-11 08:25:37
字體:
來源:轉載
供稿:網友

CSS 預處理器是一個非常出色的工具,但是它們的變量是靜態的,有語法作用域。Native CSS 變量,從另一面來看,它們是一個完全不同類型的變量:因為它們是動態的,他們的作用域是DOM,事實上,這也是困惑該不該稱他們為變量,它們實際上是CSS 屬性,這也給了他們一個機會,來解決這個功能完全不同的問題。

在這篇文章中,我將討論一些CSS 自定義屬性這個功能,而且不用CSS 預處理器來做。當然我還演示一些新的設計模式,自定義功能的啟用。文章最后討論一下,我認為在未來最有可能的是預處理變量和自定義變量一起使用,兩個東西取長補短,珠聯璧合。


預處理器變量的限制
在繼續寫之前,我想強調的是,我真的很喜歡CSS 預處理器,我的所有項目都在使用它。預處理器做了一件非常了不起的事情,即時你知道他最終出來的就是原始的CSS,任然可以感受這個神器的時代。

任何工具,都有他的局限性,有一個炫酷的外觀會讓人驚喜而忽略了其中的限制,特別是新用戶。

Preprocessor variables aren’t live
也許受預處理限制,在媒體查詢中,最常見的新手也無力吐槽定義變量或使用@extend

CSS Code復制內容到剪貼板
  1. $gutter: 1em;      
  2. @media (min-width: 30em) {      $gutter: 2em;   
  3. }      
  4. .Container {      padding: $gutter;   
  5. }  

如果你編譯上面的代碼,你得到是:

CSS Code復制內容到剪貼板
  1. .Container {      padding: 1em;   
  2. }  

如你所見,媒體查詢被廢棄,變量賦值被忽略。

從理論上講,雖然sass 負責申明條件變量,但這樣做也是一個挑戰,枚舉所有Permutations—exponentially 會增加CSS的最終大小。

預處理器變量不能級聯(層疊)
每當你使用變量,作用域的范圍不可避免,這個變量應該全局嗎?應該是file/module?還是塊作用域?

CSS 最終是為HTML的樣式,事實證明還有另外一種有用的方法是變量的范圍:DOM 元素,但是preprocessors不能運行在瀏覽器且從未看見標記。

參考一個網站,試圖給<html> 的元素添加一個 class user-setting-large-text 他們更傾向于更大的文本大小 。
一旦這個class設置,更大$font-size變量賦值就會運用:

CSS Code復制內容到剪貼板
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 防城港市| 莎车县| 溧水县| 金寨县| 大厂| 建瓯市| 井冈山市| 琼中| 靖江市| 绥宁县| 行唐县| 雷波县| 永昌县| 邻水| 滁州市| 苏尼特右旗| 威远县| 盘锦市| 永平县| 淮滨县| 衢州市| 隆回县| 县级市| 辉县市| 神木县| 遂平县| 石泉县| 昌都县| 翁牛特旗| 青冈县| 柳林县| 建昌县| 霍州市| 达日县| 马关县| 安泽县| 巴马| 固阳县| 博乐市| 烟台市| 邢台市|