<strike id="cy2gs"><menu id="cy2gs"></menu></strike>
  • <del id="cy2gs"><dfn id="cy2gs"></dfn></del>
  • 面向未來的 CSS Variable

    2017-2-25    濤濤

    如果您想訂閱本博客內(nèi)容,每天自動發(fā)到您的郵箱中, 請點這里



    CSS Variable 即CSS變量,聊CSS變量之前,我想先來說說Sass和Less,還有Stylus,它們都是目前使用較為普遍的三款CSS預(yù)處理框架,我們?yōu)槭裁匆褂盟鼈兡兀驗樗鼈兌伎梢宰屇阍贑SS中方便的使用變量、簡單的程序邏輯、函數(shù)等在編程時使用的一些基本技巧,這些框架對于這種CSS預(yù)處理的技術(shù)已經(jīng)非常成熟,可以讓你的CSS代碼變的更加簡潔、便于維護、在編寫的時候也無需考慮代碼的兼容性。

    三大編譯語言的方法

    首先他們不約而同的都將自己的名稱做為編譯文件的后綴名,分別是:

    由于Sass和Less都使用的是標準的CSS語法,和Stylus有所不同,它們分別支持以下幾種語法

    它們的變量使用方法也有不太一樣的地方:

    以上三種框架編譯后的寫法,都會得到以下相同的樣式:

    其次就是嵌套方式,有時候我們的類名會引入非常多的父級元素,這樣冗余的代碼,不僅沒有提升可讀性,而且增加代碼的體積:

    如果使用CSS預(yù)處理,就可以少些重復(fù)的類名,代碼結(jié)構(gòu)層次清晰,顯得會比較優(yōu)雅:

    css變量的方法

    那么CSS變量這邊的情況又是如何?關(guān)于變量,其實不外乎定義和使用,我們可以通過這樣一個簡單的例子來了解,例如:

    CSS:

    HTML:

    這里定義了三個變量,title、link、text,變量的應(yīng)用范圍是整個document,實際效果如下:

    當(dāng)然CSS變量也是有應(yīng)用范圍的,這就是說,你可以覆蓋它們,因為變量的聲明和使用遵循了CSS的層疊特性,類似于普通編程語言中的變量作用域:

    CSS:

    這樣定義后,p就變成另外一種顏色(黑色):

    CSS變量還可以賦予任何值,例如,你可以把它們放到calc()計算表達式里。這樣可以在不同的情況下對CSS變量重新賦值,比如,在不同的media query里賦不同的值。下面是一些使用場景的例子:

    CSS:

    根據(jù)上面的CSS定義,當(dāng)瀏覽器窗口小于等于640px時,media query就會發(fā)生作用,里面的CSS變量值發(fā)生變化。

    CSS變量的用途

    在我們構(gòu)建站點的時候,通常為了站點的可維護性,例如使用換膚,或者某一種配色方案,當(dāng)中的文字顏色、字體大小、背景色等等會在頁面中多次出現(xiàn),并被重復(fù)使用,當(dāng)你需要修改的時候,不論是調(diào)整配色還是文字大小,都可以通過之前設(shè)置好的CSS變量來直接修改。

    那么為什么我要使用CSS變量呢

    相較于傳統(tǒng)的Sass、Less、Stylus等預(yù)處理變量,CSS變量有它的優(yōu)勢:

    1.CSS變量直接修改,立即生效,而傳統(tǒng)與處理器變量編譯后無法直接更改

    2.CSS變量能夠像CSS本身一樣,能夠繼承,能夠組合使用,可以作用需要的地方即作用域

    3.配合上JS,可以方便的讀寫和控制

    4.語法上類似CSS和JS,方便快速上手開發(fā),不需要像其它傳統(tǒng)預(yù)處理變量那樣,需要學(xué)習(xí)各種語法,開發(fā)和交接成本低

    5.CSS變量本身包換了語義的信息,在CSS文件中能夠被識別和理解。

    6.當(dāng)多個媒介查詢的時候,重復(fù)定義的代碼量會成倍增加。因為CSS變量可以傳遞,當(dāng)我們使用響應(yīng)式的時候,我們只需要修改一個CSS屬性值即可。下圖中我們只需要修改--columns這一個變量即可。

    css變量支持的情況

    下面是目前瀏覽器支持的情況,雖然IE依舊不能夠支持,但是如果是在移動端,還是可以來嘗試一下的,當(dāng)然如果有興趣的可以關(guān)注一下:cssnextmyth這個兩個插件,可以讓我們提前使用CSS變量的一些方法:

    總結(jié)

    總的來說,CSS變量還是能夠針對性的解決一些項目中的實際問題:

    比如一個站點的配色,如果只是幾個常用的顏色被應(yīng)用到多個地方,我們完全可以通過CSS變量來輕松修改,并不需要用到Less、Sass、Stylus這樣"復(fù)雜"的編譯系統(tǒng)。

    在響應(yīng)式代碼中不需要重復(fù)聲明變量,在Less和Sass中也沒辦法做到像CSS變量那樣簡潔優(yōu)雅的代碼。

    最后,寫這篇文章并不是想說CSS變量要取代誰和誰,而是,我們在開發(fā)過程中,應(yīng)該思考自己需要通過工具解決某個實際存存在的問題!

    藍藍設(shè)計m.skdbbs.com )是一家專注而深入的界面設(shè)計公司,為期望卓越的國內(nèi)外企業(yè)提供卓越的UI界面設(shè)計BS界面設(shè)計 、 cs界面設(shè)計 、 ipad界面設(shè)計 、 包裝設(shè)計 、 圖標定制 、 用戶體驗 、交互設(shè)計、 網(wǎng)站建設(shè) 平面設(shè)計服務(wù)

    日歷

    鏈接

    個人資料

    藍藍設(shè)計的小編 http://m.skdbbs.com

    存檔

    主站蜘蛛池模板: 亚洲精品无码久久久影院相关影片| 久久亚洲美女精品国产精品| 中文字幕精品一区| 亚洲国产精品久久| 国产综合色在线精品| 免费人成在线观看欧美精品| 久久91精品久久91综合| 日韩精品区一区二区三VR| 久久国产精品免费一区| 中文精品久久久久国产网址| 精品久久久久久亚洲精品| 亚洲午夜福利精品久久 | 国产福利精品视频自拍| 精品无码AV无码免费专区| 久久久久九国产精品| 国产精品成人一区二区| 亚洲精品电影网| 精品一区二区三区在线视频| 国产成人精品日本亚洲| 精品人妻中文av一区二区三区| 老司机性色福利精品视频| 久久久WWW成人免费精品| 国产精品福利区一区二区三区四区| 国产精品视频一区二区三区经| 国产精品视频第一区二区三区| 精品亚洲成AV人在线观看| 亚洲精品国产精品乱码不卡√| 乱人伦人妻精品一区二区| 国产精品手机在线观看你懂的 | 免费精品无码AV片在线观看| 亚洲欧洲久久久精品| 欧美精品福利在线视频 | 久99精品视频在线观看婷亚洲片国产一区一级在线 | 日韩精品久久久久久免费| 无码人妻精品一区二区三18禁| 综合人妻久久一区二区精品| 亚洲国产精品狼友中文久久久| 夜夜高潮夜夜爽国产伦精品| 中文无码精品一区二区三区| 亚洲国产精品无码久久久蜜芽 | 亚洲爆乳精品无码一区二区|