您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關css3中@supports指的是什么,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
css3 @supports是什么?有什么用?
@supports是CSS3新引入的規則之一,主要用于檢測當前瀏覽器是否支持某個CSS屬性并加載具體樣式,即css的特性檢測。
我們要知道,在前端技術日新月異的今天,各種新技術新屬性層出不窮;而 CSS 層面亦不例外,css的一些新屬性能極大提升用戶體驗以及減少開發者的工作量,并且當下的前端氛圍是如此的:
1、很多實驗性的功能未成為標準就被大量的使用;
2、需要兼容多種終端,多種瀏覽器,而各種瀏覽器對某一新功能的實現效果天差地別;
在這種背景下,又想使用新的技術給用戶提供更好的體驗,又想做好回退機制保證低版本終端用戶的基本體驗,CSS 特性檢測就應運而生了。
CSS 特性檢測就是針對不同瀏覽器終端,通過條件判斷當前瀏覽器對某個特性是否支持。運用 CSS 特性檢測,我們可以在支持當前特性的瀏覽器環境下使用新的技術,而不支持的則做出某些回退機制。【相關視頻教程推薦:CSS3教程】
下面我們就來看看css3 @supports是如何使用的,介紹@supports進行css特性檢測的方法。
css3 @supports的使用
CSS @supports 可以通過 CSS 語法來實現特性檢測,并在內部 CSS 區塊中寫入條件判斷語句:如果特性檢測通過則希望實現的 CSS 語句,如果特性檢測不通過則希望實現的 CSS 語句。
基本語法:
//如果通過了條件 @supports(運行條件) { /* 應用規則---想要實現的css語句*/ } //如果沒有通過條件 @supports not(運行的條件) { /* 應用規則---想要實現的css語句 */ }
例:
/ *僅當支持'display:flex'時才在'@supports'規則中應用規則。* / @ supports(display:flex){ .el { display:flex; align-items:middle; / * ...... * / } }
實現多個條件的多個檢查
在@supports中,我們可以使用and和or運算符創建復雜的測試,檢查規則中的多個功能是否支持。
and和or運算符可以分開使用,也可以組合使用,例:
為避免由優先規則引起的混淆,現在允許組合and,使用or,但不使用括號圖層。這意味著以下聲明無效:
@supports (transform: rotate3d(1, 1, 0, 30deg) and (transition: transform 2s) or (animation: my-3d-animation 2s alternate forwards) { /* ... */ }
我們需要使用括號組合條件,就像使用其他編程語言一樣,這樣可以使得優先級清晰。所以,上面的例子對你這樣做是有效的:
@supports (transform: rotate3d(1, 1, 0, 30deg) and ( (transition: transform 2s) or (animation: my-3d-animation 2s alternate forwards) ) { /* ... */ }
注:
1、在not、and、or兩側都需要使用空格分開
2、正在測試的聲明(運行條件)必須始終出現在括號內,而它是表達式中唯一的內容;否則就是無效的聲明。
3、組合運算符時,必須使用括號清除優先級。
瀏覽器支持
支持以下版本:
關于css3中@supports指的是什么就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。