亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

使用CSS的@supports標(biāo)記來檢測瀏覽器的兼容情況

WEB駭客   發(fā)布時間:2016-06-28 11:38:04   作者:佚名   我要評論
@supports可以用來檢查瀏覽器是否支持某CSS屬性,并且可以通過JavaScript進行控制,以下就來詳細說明使用CSS的@supports標(biāo)記來檢測瀏覽器的兼容情況的方法

CSS @supports標(biāo)記在CSS代碼里跟@media查詢語句的語法相似:

CSS Code復(fù)制內(nèi)容到剪貼板
  1. @supports(prop:value) {   
  2.  /* 各種樣式 */  
  3. }  

CSS @supports允許程序員用多種不同的方法來探測當(dāng)前瀏覽器是否支持某項CSS樣式特征。

 

基本屬性檢測
你可以執(zhí)行對基本屬性和屬性值的檢測:

CSS Code復(fù)制內(nèi)容到剪貼板
  1. @supports (display: flex) {   
  2.  div { display: flex; }   
  3. }  

這是@supports標(biāo)記最基本的用法。

 

not關(guān)鍵字
@supports標(biāo)記可以和‘not’關(guān)鍵字組合,用來應(yīng)對不支持的情況:

CSS Code復(fù)制內(nèi)容到剪貼板
  1. @supports not (display: flex) {   
  2.  div { floatleft; } /* 替換樣式 */  
  3. }  

 

多檢測及條件檢測

CSS Code復(fù)制內(nèi)容到剪貼板
  1. /* or */  
  2. @supports (display: -webkit-flex) or   
  3.           (display: -moz-flex) or   
  4.           (display: flex) {   
  5.   
  6.     /* use styles here */  
  7. }   
  8.   
  9. /* and */  
  10. @supports (display: flex) and (-webkit-appearance: caret) {   
  11.   
  12.  /* something crazy here */  
  13. }   
  14.   
  15. /* and and or */  
  16. @supports ((display: -webkit-flex) or   
  17.           (display: -moz-flex) or   
  18.           (display: flex)) and (-webkit-appearance: caret) {   
  19.   
  20.     /* use styles here */  
  21. }  

 

Javascript CSS.supports()
在Javascript中通過使用window.CSS.supports方法來對CSS @supports進行檢測,規(guī)范中提供了兩個方法,一個方法可以接收兩個參數(shù)boolValue = CSS.supports(propertyName, value);另一個可以接收一個字符串(A DOMString containing the condition to check),boolValue = CSS.supports(supportCondition);具體使用看下例:

JavaScript Code復(fù)制內(nèi)容到剪貼板
  1. //測試環(huán)境,Chrome:34.0.1847.131 m   
  2. var res01 = CSS.supports("text-decoration-style""blink");   
  3. //Outputs: false   
  4. console.log(res01);   
  5.   
  6. var res02 = CSS.supports("display""flex");   
  7. //Outputs: true   
  8. console.log(res02);   
  9.   
  10. var res03 = CSS.supports("( transform-origin: 5% 5% )");   
  11. //Outputs: false   
  12. console.log(res03);   
  13.   
  14. var res04 = CSS.supports("( transform-style: preserve ) or ( -moz-transform-style: preserve ) or " +   
  15.                       "( -o-transform-style: preserve ) or ( -webkit-transform-style: preserve )" );   
  16. //Outputs: false   
  17. console.log(res04);  

@supports的使用場景

大多數(shù)情況,@supports是用來支持老式瀏覽器,并在有可能的情況下,利用現(xiàn)代瀏覽器的新特征來提高用戶體驗。@supports的一個最重要的使用場景是頁面布局。很多現(xiàn)代瀏覽器都提供了對flexbox網(wǎng)頁布局的支持,在這種還有很多瀏覽器不支持的情況下,你的代碼可以寫成這樣:

CSS Code復(fù)制內(nèi)容到剪貼板
  1. section {   
  2.  floatleft;   
  3. }   
  4.   
  5. @supports (display: -webkit-flex) or   
  6.           (display: -moz-flex) or   
  7.           (display: flex) {   
  8.   
  9.     section {   
  10.       display: -webkit-flex;   
  11.       display: -moz-flex;   
  12.      display: flex;   
  13.      floatnone;   
  14.     }   
  15. }  

相信隨著程序員對這種新的@supports功能的使用和體驗,更多的更好的使用場景會不斷的出現(xiàn)。

相關(guān)文章

  • 詳解CSS中@supports的用法

    這篇文章主要介紹了詳解CSS中@supports的用法,是CSS入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-07-14

最新評論