2017年值得學習的3個CSS特性

原文:https://bitsofco.de/3-new-css-features-to-learn-in-2017/
譯文:http://caibaojian.com/3-new-css-features-to-learn-in-2017.html
譯者:前端開發(fā)博客(蔡寶堅)

未經(jīng)許可,禁止轉(zhuǎn)載膘魄,如有不妥之處,歡迎指正蜀肘。

新年快樂吗蚌!
隨著新的一年到來科吭,我們有一整套新的東西要開始學習。雖然今年的新特性有很多浑此,但有3個新的特性是最令我激動不已的累颂。

1.Feature Queries

前段時間,我寫過關(guān)于Feature Queries的一篇文章凛俱,叫“我最想要的CSS特性之一”紊馏。好了,現(xiàn)在它已經(jīng)出現(xiàn)在這里了蒲犬。它支持除了IE瀏覽器之外的所有主流瀏覽器(包括Opera Mini)朱监。

Feature Queries,使用這個 @supports 規(guī)則原叮,允許我們包含CSS在一個條件塊赫编,但只有當前用戶客戶端支持一個特別的CSS property-value 才有效。舉個簡單的例子奋隶,只支持 display:flex 的瀏覽器才用Flexbox樣式擂送。

@supports ( display:flex ){
    .foo { display:flex; }
}

另外,使用像 andnot 的操作符唯欣,我們可以創(chuàng)建更加復雜的特性查詢嘹吨。例如,我們可以檢測一個瀏覽器只支持舊的Flexbox語法-

@supports ( display: flexbox ) 
          and 
          ( not ( display: flex ) ) {
  .foo { display: flexbox; }
}

兼容情況

2.Grid 布局

CSS 網(wǎng)格布局模塊定義了一個以創(chuàng)建網(wǎng)格為基礎的布局系統(tǒng)境氢。它跟Flexbible Box 布局模塊很相似蟀拷,但它更多的是為頁面布局而設計,因此具有許多不同的特性产还。

清晰的項放置

一個網(wǎng)格是由Grid Container(用 display: grid 創(chuàng)建)匹厘,和Grid項(這是子項)構(gòu)成嘀趟。在我們的CSS中脐区,我們可以容易并且清晰的組織網(wǎng)格項的放置和順序,而不用管他們在標記中的放置她按。

舉個例子牛隅,在我的文章“使用CSS網(wǎng)格的圣杯布局,我展示一下我們?nèi)绾问褂眠@個組件來創(chuàng)建類似的“圣杯布局”酌泰。

下面這個CSS只有短短31行

.hg__header { grid-area: header; }
.hg__footer { grid-area: footer; }
.hg__main { grid-area: main; }
.hg__left { grid-area: navigation; }
.hg__right { grid-area: ads; }

.hg {
    display: grid;
    grid-template-areas: "header header header"
                         "navigation main ads"
                         "footer footer footer";
    grid-template-columns: 150px 1fr 150px;
    grid-template-rows: 100px 
                        1fr
                        30px;
    min-height: 100vh;
}

@media screen and (max-width: 600px) {
    .hg {
        grid-template-areas: "header"
                             "navigation"
                             "main"
                             "ads"
                             "footer";
        grid-template-columns: 100%;
        grid-template-rows: 100px 
                            50px 
                            1fr
                            50px 
                            30px;
    }
}

靈活的長度

CSS網(wǎng)格組件介紹了一個新的長度單位 fr 媒佣,它表示網(wǎng)格容器中剩下的自由空間的一小部分。

這允許我們根據(jù)網(wǎng)格容器中剩下的空間來分配網(wǎng)格子項目中的寬和高陵刹。例如默伍,在圣杯布局中,我想要 main 容器占據(jù)除了兩個側(cè)欄之外剩下的空間,為了實現(xiàn)這個也糊,我簡單的寫了:

.hg {
    grid-template-columns: 150px 1fr 150px;
}

間距

我們可以使用 grid-row-gap, grid-column-gapgrid-gap屬性為我們的網(wǎng)格布局具體定義間隔炼蹦。這些屬性接受一個length-percentage 數(shù)據(jù)類型作為值,百分比對應于內(nèi)容的區(qū)域狸剃。

舉個例子掐隐,有一個5%的間隙,我們可以這樣子寫:

.hg {
    display: grid;
    grid-column-gap: 5%;
}

兼容情況

CSS網(wǎng)格組件最早在今年3月份將可以使用在瀏覽器中

3.原生變量

最近钞馁,原生CSS變量(css變量組件自定義屬性)虑省。這個組件介紹一個創(chuàng)建自定義變量的方法,它可以賦值給CSS屬性僧凰。

舉個例子探颈,如果我們需要在樣式表中多個地方使用到colour,我們可以把它當做一個變量和并引用它,而不必多次寫它的實際值训措。

:root {
  --theme-colour: cornflowerblue;
}

h1 { color: var(--theme-colour); }  
a { color: var(--theme-colour); }  
strong { color: var(--theme-colour); } 

現(xiàn)在有很多CSS預處理器像SASS可以做到這一點膝擂,但CSS變量有瀏覽器支持的優(yōu)勢。這意味著它們的值可以實時更新隙弛。為了改變下面的屬性 --theme-colour 架馋,例如,我們需要做的就是下面這個了:

const rootEl = document.documentElement;  
rootEl.style.setProperty('--theme-colour', 'plum'); 

兼容情況

什么是兼容情況

如你所見全闷,不是所有的特性都被所有瀏覽器所支持叉寂,所以我們要如何合適使用它們在生產(chǎn)中?好吧总珠,用漸進增強屏鳍!上一年,我在Fronteers 會議上講了一個關(guān)于如何在CSS上使用漸進增加的演講局服。你可以看一下下面這個:
https://player.vimeo.com/video/194815985

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末钓瞭,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子淫奔,更是在濱河造成了極大的恐慌山涡,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,496評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件唆迁,死亡現(xiàn)場離奇詭異鸭丛,居然都是意外死亡,警方通過查閱死者的電腦和手機唐责,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評論 3 392
  • 文/潘曉璐 我一進店門鳞溉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人鼠哥,你說我怎么就攤上這事熟菲】凑” “怎么了?”我有些...
    開封第一講書人閱讀 162,632評論 0 353
  • 文/不壞的土叔 我叫張陵抄罕,是天一觀的道長帽衙。 經(jīng)常有香客問我,道長贞绵,這世上最難降的妖魔是什么厉萝? 我笑而不...
    開封第一講書人閱讀 58,180評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮榨崩,結(jié)果婚禮上谴垫,老公的妹妹穿的比我還像新娘。我一直安慰自己母蛛,他們只是感情好翩剪,可當我...
    茶點故事閱讀 67,198評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著彩郊,像睡著了一般前弯。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上秫逝,一...
    開封第一講書人閱讀 51,165評論 1 299
  • 那天恕出,我揣著相機與錄音,去河邊找鬼违帆。 笑死浙巫,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的刷后。 我是一名探鬼主播的畴,決...
    沈念sama閱讀 40,052評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼尝胆!你這毒婦竟也來了丧裁?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,910評論 0 274
  • 序言:老撾萬榮一對情侶失蹤含衔,失蹤者是張志新(化名)和其女友劉穎煎娇,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體抱慌,經(jīng)...
    沈念sama閱讀 45,324評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡逊桦,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,542評論 2 332
  • 正文 我和宋清朗相戀三年眨猎,在試婚紗的時候發(fā)現(xiàn)自己被綠了抑进。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,711評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡睡陪,死狀恐怖寺渗,靈堂內(nèi)的尸體忽然破棺而出匿情,到底是詐尸還是另有隱情,我是刑警寧澤信殊,帶...
    沈念sama閱讀 35,424評論 5 343
  • 正文 年R本政府宣布炬称,位于F島的核電站,受9級特大地震影響涡拘,放射性物質(zhì)發(fā)生泄漏玲躯。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,017評論 3 326
  • 文/蒙蒙 一鳄乏、第九天 我趴在偏房一處隱蔽的房頂上張望跷车。 院中可真熱鬧,春花似錦橱野、人聲如沸朽缴。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽密强。三九已至,卻和暖如春蜗元,著一層夾襖步出監(jiān)牢的瞬間或渤,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評論 1 269
  • 我被黑心中介騙來泰國打工奕扣, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留劳坑,地道東北人。 一個月前我還...
    沈念sama閱讀 47,722評論 2 368
  • 正文 我出身青樓成畦,卻偏偏與公主長得像距芬,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子循帐,可洞房花燭夜當晚...
    茶點故事閱讀 44,611評論 2 353

推薦閱讀更多精彩內(nèi)容

  • 本文轉(zhuǎn)載自:眾成翻譯譯者:dainiel鏈接:http://www.zcfy.cc/article/2360原文:...
    極樂君閱讀 451評論 0 1
  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案框仔? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標簽默認的外補...
    _Yfling閱讀 13,748評論 1 92
  • 原文地址:Getting to know CSS Grid Layout 原文作者:Chris Wright 譯者...
    iKcamp閱讀 3,776評論 0 13
  • 無數(shù)個孩子在哭泣, 他們打翻了顏料盤拄养, 可我卻只看到一地的黑色离斩。 雪地上, 拖著疲憊身軀的北漂瘪匿, 留下一串孤獨無助...
    吉姆小姐姐閱讀 236評論 0 0
  • 分貝 漸漸低了 歌聲 也涼了 誰能提示我 出口在哪 我站在原地 站在原地 站到燈飾普照月球跛梗。
    留子堯閱讀 296評論 0 1