CSS3 雖然陸續被主流的瀏覽器支援,但也還是有持續在發展新的語法,或是如果有需要支援舊版瀏覽器,比如一些沒辦法使用 flex 排版的瀏覽器,可以使用這個來判斷是否支援某種屬性才去讀取這段內容,不支援的話就讀取舊的寫法。

@supports  (condition){
  /* specific rules */
}

那個 condition 就是用來判斷是否支援某個屬性的,比如我們要讓支援 flex 的瀏覽器才去讀取 flex 的屬性:

@supports (display) {
  div {
    display: grid;
  }
}

相對的如果不支援 flex,可以用 not 來判斷使用舊的寫法:

@supports not (display: grid) {
  div {
    float: right;
  }
}

 

另外還能夠用 and 跟 or 來增加一些判斷,如:

(display: table-cell) and (display: list-item)
( transform-style: preserve ) or ( -moz-transform-style: preserve )

 

不過萬惡 ie 不支援這個屬性,看一下各家瀏覽器的支援狀況