欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

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

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

 

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

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)鍵字組合,用來(lái)應(yīng)對(duì)不支持的情況:

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

 

多檢測(cè)及條件檢測(cè)

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中通過(guò)使用window.CSS.supports方法來(lái)對(duì)CSS @supports進(jìn)行檢測(cè),規(guī)范中提供了兩個(gè)方法,一個(gè)方法可以接收兩個(gè)參數(shù)boolValue = CSS.supports(propertyName, value);另一個(gè)可以接收一個(gè)字符串(A DOMString containing the condition to check),boolValue = CSS.supports(supportCondition);具體使用看下例:

JavaScript Code復(fù)制內(nèi)容到剪貼板
  1. //測(cè)試環(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的使用場(chǎng)景

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

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. }  

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

相關(guān)文章

  • 詳解CSS中@supports的用法

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

最新評(píng)論