搜尋
首頁web前端css教學CSS的簡介@supports Rule(功能查詢)

CSS的簡介@supports Rule(功能查詢)

鑰匙要點

  • > CSS中的@supports規則允許開發人員實現功能檢測,檢查瀏覽器是否支持某些CSS屬性/值對並相應地應用樣式。這是一種逐步增強方法來處理對高級技術的不平衡瀏覽器支持的一部分。
  • > @supports規則語法包括邏輯運算符,例如“ and”,“ or”和“不”,允許一次測試多個條件。將括號的正確使用在將條件分組在一起時至關重要。
  • > JavaScript可以與CSS接口和supports()函數一起使用javascript與CSS特徵查詢。此函數返回一個布爾值,指示瀏覽器是否支持特定的CSS屬性。
  • >大多數現代瀏覽器都支持@Supports規則,但Internet Explorer 11和Opera Mini卻沒有。因此,開發人員應定義所有目標瀏覽器都可以處理的基礎樣式,並使用@supports覆蓋和補充可以處理新功能的瀏覽器。
  • >解決瀏覽器對最新技術的不均勻支持的兩種一般方法是優雅的降級和漸進式增強。
優雅的降級利用高級技術來設計用於復雜的用戶體驗和功能。能力較低的瀏覽器的用戶仍然能夠訪問該網站,但功能和瀏覽體驗水平下降。

> 通過逐步增強,開發人員通過設計大多數瀏覽器可以支持的用戶體驗來建立基線。他們的應用程序提供了瀏覽器功能的內置檢測,它們用來使其提供更先進的功能和更豐富的瀏覽體驗。

>

>漸進式增強方法中最廣泛採用的工具是Modernizr JavaScript庫。

現代izr編程檢查瀏覽器是否支持下一代Web技術,並因此返回True還是False。憑藉這些知識,您可以利用新功能來支持瀏覽器,並且仍然具有可靠的餐飲方式。

>

聽起來不錯,有一段時間以來釀造的東西甚至更好。您可以使用本機CSS功能查詢執行功能檢測

在這篇文章中,我將更深入地研究@supports及其關聯的JavaScript API。

>使用@supports Rule

檢測瀏覽器功能

> @supports規則是CSS3條件規範規範的一部分,其中還包括我們所有人在響應式設計工作中使用的更廣泛的@Media規則。

>使用媒體查詢時,您可以檢測顯示功能,例如視口寬度和高度,@supports允許您檢查CSS屬性/值配對的瀏覽器支持。 >>>>

考慮一個基本示例,可以說您的網頁顯示了您想使用CSS融合來增強的藝術品。的確,CSS混合模式在非支持瀏覽器中優雅地降低。但是,您可能希望通過顯示同樣特殊的東西(即使不是同樣壯觀)來使非支持瀏覽器的用戶默認顯示的內容,而不是默認情況下顯示的內容。這就是您將如何使用@supports在樣式表中執行CSS混合的支票:

<span><span>@supports (mix-blend-mode: overlay)</span> {
</span>
  <span><span>.example</span> {
</span>    <span>mix-blend-mode: overlay;
</span>  <span>}
</span>
<span>}</span>

>將不同的樣式應用於沒有混合模式支持的瀏覽器,您將使用此語法:>

<span><span>@supports not(mix-blend-mode: overlay)</span> {
</span>
  <span><span>.example</span> {
</span>    <span>/* alternative styles here */
</span>  <span>}
</span>
<span>}</span>
有幾件事要注意:

    您要測試的狀況必須在括號內。換句話說,@supports mix-blend模式:覆蓋{...}無效。但是,如果您添加的括號比所需的更多,則代碼可以。例如,@supports(((mix-blend mode:offlay))是有效的。
  • >
  • 條件必須包括屬性和值。在上面的示例中,您正在檢查該屬性的混合模式屬性和覆蓋值。
  • 添加尾聲!在您要測試的聲明中很重要不會影響您的代碼的有效性。
  • >讓我們用一個小的演示充實上面的示例。具有混合模式支持的瀏覽器將在@supports(){...}塊中應用樣式;其他瀏覽器將在@supports Not(){...}塊中應用樣式
html:

CSS:

<span><span><span><article> class<span>="artwork"</span>></article></span>
</span>  <span><span><span><img  src="/static/imghwm/default1.png" data-src="https://img.php.cn/upload/article/000/000/000/174027307262599.png?x-oss-process=image/resize,p_40" class="lazy" alt="CSS的簡介@supports Rule(功能查詢)" > src<span>="myimg.jpg"</span> alt<span>="cityscape"</span>></span>
</span><span><span><span></span>></span></span></span></span>

>在Codepen上查看演示:

<span><span>@supports (mix-blend-mode: overlay)</span> {
</span>
  <span><span>.artwork img</span> {
</span>    <span>mix-blend-mode: overlay;
</span>  <span>}
</span>
<span>}
</span>
<span><span>@supports not(mix-blend-mode: overlay)</span> {
</span>
  <span><span>.artwork img</span> {
</span>    <span>opacity: 0.5;
</span>  <span>}
</span>
<span>}</span>
>請參閱codepen上的sitepoint(@sitepoint)的筆@supports Rule Demo。

一次測試多個條件

在使用@support進行功能測試時,您不僅限於一次測試條件。結合邏輯運算符,例如和或和或和或已提到的未運算符,您可以一次測試多個功能。

連接

操作員測試是否存在多個必需

>條件:

>通過使用或關鍵字,您可以測試一組樣式的多個替代功能。如果其中一些替代方案需要供應商的屬性或價值前綴:>

<span><span>@supports (property1: value1) and (property2: value2)</span> {
</span>  <span>element {
</span>    <span>property1: value1;
</span>    <span>property2: value2;
</span>  <span>}
</span><span>}</span>
>您還可以在相同的@supports規則中與OR結合或與OR進行測試條件:

<span><span>@supports (mix-blend-mode: overlay)</span> {
</span>
  <span><span>.example</span> {
</span>    <span>mix-blend-mode: overlay;
</span>  <span>}
</span>
<span>}</span>

當您將許多條件分組在一起時,括號的正確使用至關重要。擁有和,或者,而不是混合關鍵字無效。另外,您對括號內的條件進行分組的方式建立了評估它們的順序。在上面的摘要中,首先評估析取或條件,然後根據和關鍵字引入的進一步要求的條件評估結果答案。

CSS的簡介@supports Rule(功能查詢)

>非關鍵字可讓您一次測試一個條件。例如,下面的代碼無效:

>
<span><span>@supports not(mix-blend-mode: overlay)</span> {
</span>
  <span><span>.example</span> {
</span>    <span>/* alternative styles here */
</span>  <span>}
</span>
<span>}</span>
相反,您需要對

進行分組>與括號內的非關鍵字否定的條件。這是以上片段的更正版本:>

<span><span><span><article> class<span>="artwork"</span>></article></span>
</span>  <span><span><span><img  alt="CSS的簡介@supports Rule(功能查詢)" > src<span>="myimg.jpg"</span> alt<span>="cityscape"</span>></span>
</span><span><span><span></span>></span></span></span></span>
>最後,請確保您在一個和或或或或或或。

行動中的操作員

如果瀏覽器使用以下語法支持漸變和混合模式,則可以應用一組樣式(我將下面的代碼分為多行以出於顯示目的):

由於一些較舊的Android瀏覽器需要線性梯度的-webkit-前綴,所以讓我們通過將這種進一步的條件納入@Supports塊來檢查瀏覽器支持:

>

<span><span>@supports (mix-blend-mode: overlay)</span> {
</span>
  <span><span>.artwork img</span> {
</span>    <span>mix-blend-mode: overlay;
</span>  <span>}
</span>
<span>}
</span>
<span><span>@supports not(mix-blend-mode: overlay)</span> {
</span>
  <span><span>.artwork img</span> {
</span>    <span>opacity: 0.5;
</span>  <span>}
</span>
<span>}</span>
>假設您的網站使用亮度和飽和混合模式,在撰寫本文時,Safari不支持。您仍然想為這些瀏覽器提供替代樣式,因此,您可以使用@supports不使用@supports設置適當的連接條件,

本節的所有演示都可以在Codepen上獲得:
<span><span>@supports (property1: value1) and (property2: value2)</span> {
</span>  <span>element {
</span>    <span>property1: value1;
</span>    <span>property2: value2;
</span>  <span>}
</span><span>}</span>
>請參閱@supports by sitepoint(@sitepoint)上的多個功能測試的筆演示。

帶有CSS功能查詢的JavaScript

>
<span><span>@supports (property1: value1) or (-webkit-property1: value1)</span> {
</span>  <span>element {
</span>    <span>-webkit-property1: value1;
</span>    <span>property1: value1;
</span>  <span>}
</span><span>}</span>
>您可以使用JavaScript CSS接口和supports()函數來利用CSS功能查詢。您可以通過兩種方式中的任何一個編寫CSS.Supports()函數。 >

>較早和最廣泛支持的語法採用兩個參數,即 property

>和

value

,並返回一個布爾值為或false值:

確保您將屬性及其相應的值放置在報價中。該規范明確指出,如果以下兩個條件符合以下兩個條件:>
  • >該屬性是瀏覽器支持的“ CSS屬性名稱的字面匹配”;
  • 該值將“成功解析為該屬性的支持值”。
字面匹配

規範意味著CSS ESCAP不會處理,並且沒有修剪空白。因此,不要逃脫角色或留下尾隨的空白,否則測試將返回false。 替代性,較新的語法在括號內只有一個參數:>

使用此語法使用和 /或關鍵字進行多種條件進行測試。

這是一個快速示例。假設您想測試瀏覽器是否支持亮度混合模式。如果這樣做,您的JavaScript會動態地向目標元素添加一類光度混合物,否則它將添加一類NoluminIsity。然後,您的CSS將相應地對元素進行樣式。

<span><span>@supports (mix-blend-mode: overlay)</span> {
</span>
  <span><span>.example</span> {
</span>    <span>mix-blend-mode: overlay;
</span>  <span>}
</span>
<span>}</span>
這是CSS:

如果您遵循兩項詞語語法,則JavaScript代碼段可能如下:>

如果您喜歡最新的單詞語語法,只需將上面代碼的相應行替換為下面的代碼線:>

<span><span>@supports not(mix-blend-mode: overlay)</span> {
</span>
  <span><span>.example</span> {
</span>    <span>/* alternative styles here */
</span>  <span>}
</span>
<span>}</span>
可以隨時查看演示:

>請參閱codepen上的sitepoint(@sitepoint)的CSS特徵查詢的筆JavaScript API。
<span><span><span><article> class<span>="artwork"</span>></article></span>
</span>  <span><span><span><img  alt="CSS的簡介@supports Rule(功能查詢)" > src<span>="myimg.jpg"</span> alt<span>="cityscape"</span>></span>
</span><span><span><span></span>></span></span></span></span>
>瀏覽器支持

>除了Internet Explorer 11和Opera Mini外,主要瀏覽器的所有最新版本都支持@Supports規則。 @supports已為現實世界做好準備嗎?我用蒂法尼·布朗(Tiffany Brown)的話找到了這個問題的最佳答案:
<span><span>@supports (mix-blend-mode: overlay)</span> {
</span>
  <span><span>.artwork img</span> {
</span>    <span>mix-blend-mode: overlay;
</span>  <span>}
</span>
<span>}
</span>
<span><span>@supports not(mix-blend-mode: overlay)</span> {
</span>
  <span><span>.artwork img</span> {
</span>    <span>opacity: 0.5;
</span>  <span>}
</span>
<span>}</span>

…要警惕@supports中定義關鍵任務風格…

> 定義您的基本樣式 - 您的目標

>的每一種樣式 瀏覽器可以處理。然後使用@supports…覆蓋和補充

瀏覽器中的這些樣式可以處理新功能。

> CSS Master,p.303

結論

>在本文中,我使用@supports Rule(又稱功能查詢)探索了本機CSS瀏覽器功能檢測。我還瀏覽了相應的JavaScript API,它使您可以使用Flexible CSS.Supports()方法來檢查最新CSS屬性的瀏覽器支持。
瀏覽器對CSS功能查詢的支持很好,但不能涵蓋所有基礎。但是,如果您想在項目中使用@supports,則正如蒂法尼·布朗(Tiffany Brown)所建議的那樣,CSS文檔中的策略性放置以及Han Lin Yap的CSS-Support.js Polyfill可以提供幫助。

如果您嘗試了本文中的演示或使用@supports擁有真實的經驗,我很想听到您的來信。

>關於CSS @Supports規則

的常見問題

> CSS @supports規則是什麼?它如何工作?

> 是的,您可以使用邏輯運算符在CSS @Supports規則中使用多個條件。 “和”操作員允許您檢查是否支持多個功能,而“或”操作員檢查至少一個功能是否支持。 “非”操作員檢查是否不支持功能。例如,@supports(顯示:網格)和(顯示:flex){ / *如果支持網格和flex的樣式 * /}。 CSS功能?

>您可以通過在@supports規則中使用“非”操作員來檢查瀏覽器是否不支持CSS功能。例如,@supports not(Display:Grid){ / *如果不支持網格,則要應用 * /}。如果瀏覽器不支持CSS Grid。

>如果瀏覽器不支持@supports Rule,如果瀏覽器不支持 @ @>支持規則,它將忽略整個規則,包括其中的樣式。這意味著您可以安全地使用@supports,而不必擔心在較舊的瀏覽器上打破網站。但是,為不支持您要使用@supports測試的功能的瀏覽器提供後備樣式。 @supports規則,就像您可以嵌套其他CSS規則一樣。這使您可以以更複雜的方式測試支持多個功能的支持。例如,您只有在瀏覽器支持CSS網格和Flexbox。支持規則是CSS中特徵檢測的可靠方法,但並不完美。一些較舊的瀏覽器不支持@supports,一些瀏覽器可能會報告誤報或負面因素。在多個瀏覽器中測試您的網站總是一個好主意,以確保其按預期工作。

我可以使用@supports規則使用JavaScript? CSS功能支持CSS.Supports()方法。此方法與@supports規則相似,但允許您在JavaScript代碼中動態測試功能支持。

是否有任何工具可以檢查瀏覽器對CSS功能的支持?最受歡迎的是我可以使用,它可以提供有關瀏覽器支持的最新信息。是的,您可以將@support與媒體查詢結合使用,以根據功能支持和視口尺寸應用樣式。這對於創建還利用新CSS功能的響應式設計非常有用。

>

> @supports規則有哪些常見用例?

>

@supports規則通常用於僅在瀏覽器支持時,才能應用高級CSS功能,從而逐步增強網站。這可以包括CSS網格,Flexbox,自定義屬性等內容。它也用於為不支持這些功能的瀏覽器提供後備樣式。

>

以上是CSS的簡介@supports Rule(功能查詢)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
將框陰影添加到WordPress塊和元素將框陰影添加到WordPress塊和元素Mar 09, 2025 pm 12:53 PM

CSS盒子陰影和輪廓屬性獲得了主題。讓我們查看一些在真實主題中起作用的示例,以及我們必須將這些樣式應用於WordPress塊和元素的選項。

揭開屏幕讀取器的神秘面紗:可訪問的表格和最佳實踐揭開屏幕讀取器的神秘面紗:可訪問的表格和最佳實踐Mar 08, 2025 am 09:45 AM

這是我們在形式可訪問性上進行的小型系列中的第三篇文章。如果您錯過了第二篇文章,請查看“以:focus-visible的管理用戶焦點”。在

使用智能表單框架創建JavaScript聯繫表格使用智能表單框架創建JavaScript聯繫表格Mar 07, 2025 am 11:33 AM

本教程演示了使用智能表單框架創建外觀專業的JavaScript表單(注意:不再可用)。 儘管框架本身不可用,但原理和技術仍然與其他形式的建築商相關。

創建一個具有可滿足屬性的內聯文本編輯器創建一個具有可滿足屬性的內聯文本編輯器Mar 02, 2025 am 09:03 AM

構建內聯文本編輯器並不是微不足道的。 該過程首先要使目標元素可編輯,並在此過程中處理潛在的語法異常。 創建編輯器來構建此編輯器,您需要動態修改內容

使您的第一個自定義苗條過渡使您的第一個自定義苗條過渡Mar 15, 2025 am 11:08 AM

Svelte Transition API提供了一種使組件輸入或離開文檔(包括自定義Svelte Transitions)時動畫組件的方法。

使用GraphQL緩存使用GraphQL緩存Mar 19, 2025 am 09:36 AM

如果您最近開始使用GraphQL或審查了其優點和缺點,那麼您毫無疑問聽到了諸如“ GraphQl不支持緩存”或

在node.js中使用multer上傳並上傳express在node.js中使用multer上傳並上傳expressMar 02, 2025 am 09:15 AM

該教程通過使用node.js,express和multer構建文件上傳系統來指導您。 我們將介紹單個和多個文件上傳,甚至演示在MongoDB數據庫中存儲圖像以進行以後的檢索。 首先,設置您的projec

比較5個最佳的PHP形式構建器(和3個免費腳本)比較5個最佳的PHP形式構建器(和3個免費腳本)Mar 04, 2025 am 10:22 AM

本文探討了Envato Market上可用的PHP表單構建器腳本,比較了其功能,靈活性和設計。 在研究特定選項之前,讓我們了解PHP形式構建器是什麼以及為什麼要使用一個。 PHP形式

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前By尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器