less中使用 @supports

在Less中使用@supports
@supports 是CSS的條件規則,用于檢測瀏覽器是否支持特定的CSS屬性或值。在Less中,你可以像在普通CSS中一樣使用@supports,同時還能利用Less的特性來增強它。

基本用法

/* 檢測瀏覽器是否支持display: flex */
@supports (display: flex) {.container {display: flex;// 其他Flexbox相關樣式}
}

結合Less變量

// 定義變量
@my-property: grid;// 使用變量進行特性檢測
@supports (display: @my-property) {.grid-container {display: @my-property;grid-template-columns: repeat(3, 1fr);}
}

Less嵌套中的@supports

.container {display: block;@supports (display: grid) {display: grid;grid-gap: 20px;.item {// grid-specific item styles}}
}

AND/OR/NOT邏輯

// AND條件
@supports (display: flex) and (flex-wrap: wrap) {.flex-container { flex-wrap: wrap;}
}// OR條件
@supports (transform-style: preserve-3d) or (-webkit-transform-style: preserve-3d) {}// NOT條件
@supports not (display: grid) {}

Less mixin中使用@supports

.flexbox-mixin() {@supports (display: flex) {display: flex;&.column {flex-direction: column;}// mixin內容...}
}.container {.flexbox-mixin();
}

PostCSS注意事項
如果你使用PostCSS處理你的Less/CSS,確保你的PostCSS配置中包含postcss-preset-env或類似的插件,以確保@supports規則能在舊版瀏覽器中得到正確處理。

記住,@supports是一個CSS特性查詢,不是Less特有的功能。Less編譯器會原樣保留這些規則(不會預處理它們),最終的樣式將由瀏覽器根據其支持情況來決定是否應用。

使用@supports定義IOS安全區域

/** iPhone安全區域適配 */
.safe-area-adapt (@key: padding-bottom, @extra: 0px) {@safepadding: var(--safe-area-inset-bottom, '34px');@{key}: calc(@safepadding + @extra);
}
@supports (bottom: constant(safe-area-inset-bottom)) {padding-bottom: calc(5px + constant(safe-area-inset-bottom));
}

這段CSS代碼使用了@supports規則來檢測瀏覽器是否支持constant(safe-area-inset-bottom)特性,這是一種處理iPhone X及更新機型上"劉海屏"和底部Home指示條安全區域的方法。

代碼解釋:

@supports (padding-bottom: constant(safe-area-inset-bottom))

這是一個特性查詢(CSS Feature Query),檢查瀏覽器是否支持constant()函數和safe-area-inset-bottom變量
如果支持,則應用其中的樣式
padding-bottom: calc(8px + constant(safe-area-inset-bottom));

設置元素的底部內邊距為:8px + 設備提供的安全區域插入值
constant(safe-area-inset-bottom)獲取設備底部的安全區域距離(在iPhone X及更新機型上,這會返回底部Home指示條的高度)
注意事項:
constant()是舊版語法,現代瀏覽器使用env()替代:

@supports (padding-bottom: env(safe-area-inset-bottom)) {padding-bottom: calc(8px + env(safe-area-inset-bottom));
}

最佳實踐是同時使用兩者,因為不同瀏覽器版本支持不同:

padding-bottom: calc(8px + env(safe-area-inset-bottom));
padding-bottom: calc(8px + constant(safe-area-inset-bottom)); /* 兼容舊版 */

這種技術常用于固定在底部的元素(如底部導航欄),確保它們不會被設備的圓角或Home指示條遮擋。

safe-area-inset-*系列變量還包括:

safe-area-inset-top
safe-area-inset-right
safe-area-inset-left
這個解決方案特別適用于需要在所有設備上保持良好顯示效果的移動端網頁設計。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/80840.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/80840.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/80840.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

LeetCode Hot100 (1/100)

目錄 一、有關數組和動態數組的排序(sort函數) 1.普通數組的排序 基本用法 降序排序 2.vector的排序 基本用法 降序排序 二、數組長度和一些vector的基本語法 1. 靜態數組長度計算? 2. 安全獲取數組長度(C17 起)? 3.vecto…

通過MCP讓LLM調用系統接口

場景 MCP的出現大大豐富了LLM的功能,對于存量系統,我們希望能讓模型調用已有的接口,以最小的成本讓AI能夠獲取系統內部數據。因此我們開發了一個名為http-api-call的MCP Server,來支持模型到內部API的調用 實現方案 使用用標準…

基于Transformer的多資產收益預測模型實戰(附PyTorch實現與避坑指南)

基于Transformer的多資產收益預測模型實戰(附PyTorch模型訓練及可視化完整代碼) 一、項目背景與目標 在量化投資領域,利用時間序列數據預測資產收益是核心任務之一。傳統方法如LSTM難以捕捉資產間的復雜依賴關系,而Transformer架構通過自注意力機制能有效建模多資產間的聯…

養生:打造健康生活的全方位策略

在生活節奏不斷加快的當下,養生已成為提升生活質量、維護身心平衡的重要方式。從飲食、運動到睡眠,再到心態調節,各個方面的養生之道共同構建起健康生活的堅實基礎。以下為您詳細介紹養生的關鍵要點,助您擁抱健康生活。 飲食養生…

輕型汽車鼓式液壓制動器系統設計

一、設計基礎參數 1.1 整車匹配參數 參數項數值范圍整備質量1200-1500kg最大設計車速160km/h輪胎規格195/65 R15制動法規要求GB 12676-2014 1.2 制動性能指標 制動減速度:≥6.2m/s(0型試驗) 熱衰退率:≤30%(連續10…

無法更新Google Chrome的解決問題

解決問題:原文鏈接:【百分百成功】Window 10 Google Chrome無法啟動更新檢查(錯誤代碼為1:0x80004005) google谷歌chrome瀏覽器無法更新Chrome無法更新至最新版本? 下載了 就是更新Google Chrome了

【AAAI 2025】 Local Conditional Controlling for Text-to-Image Diffusion Models

Local Conditional Controlling for Text-to-Image Diffusion Models(文本到圖像擴散模型的局部條件控制) 文章目錄 內容摘要關鍵詞作者及研究團隊項目主頁01 研究領域待解決問題02 論文解決的核心問題03 關鍵解決方案04 主要貢獻05 相關研究工作06 解決…

Kuka AI音樂AI音樂開發「人聲伴奏分離」 —— 「Kuka Api系列|中文咬字清晰|AI音樂API」第6篇

導讀 今天我們來了解一下 Kuka API 的人聲與伴奏分離功能。 所謂“人聲伴奏分離”,顧名思義,就是將一段完整的音頻拆分為兩個獨立的軌道:一個是人聲部分,另一個是伴奏(樂器)部分。 這個功能在音樂創作和…

Idea 設置編碼UTF-8 Idea中 .properties 配置文件中文亂碼

Idea 設置編碼UTF-8 Idea中 .properties 配置文件中文亂碼 一、設置編碼 1、步驟: File -> Setting -> Editor -> File encodings --> 設置編碼二、配置文件中文亂碼 1、步驟: File -> Setting -> Editor -> File encodings ->…

Xilinx FPGA PCIe | XDMA IP 核 / 應用 / 測試 / 實踐

注:本文為 “Xilinx FPGA 中 PCIe 技術與 XDMA IP 核的應用” 相關文章合輯。 圖片清晰度受引文原圖所限。 略作重排,未整理去重。 如有內容異常,請看原文。 FPGA(基于 Xilinx)中 PCIe 介紹以及 IP 核 XDMA 的使用 N…

sqli—labs第六關——雙引號報錯注入

一:判斷輸入類型 首先測試 ?id1,?id1,?id1",頁面回顯均無變化 所以我們采用簡單的布爾測試,分別測試數字型,單引號,雙引號 然后發現,只有在測試到雙引號注入的時候符合關鍵…

【TroubleShoot】禁用Unity Render Graph API 兼容模式

使用Unity 6時新建了項目,有一個警告提示: The project currently uses the compatibility mode where the Render Graph API is disabled. Support for this mode will be removed in future Unity versions. Migrate existing ScriptableRenderPasses…

圖形學、人機交互、VR/AR、可視化等領域文獻速讀【持續更新中...】

(1)筆者在時間有限的情況下,想要多積累一些自身課題之外的新文獻、新知識,所以開了這一篇文章。 (2)想通過將文獻喂給大模型,并向大模型提問的方式來快速理解文獻的重要信息(如基礎i…

Hadoop-HDFS-Packet含義及作用

在 HDFS(Hadoop Distributed File System)中,Packet 是數據讀寫過程中用于數據傳輸的基本單位。它是 HDFS 客戶端與數據節點(DataNode)之間進行數據交互時的核心概念,尤其在寫入和讀取文件時,Pa…

顯示的圖標跟UI界面對應不上。

圖片跟UI界面不符合。 要找到對應dp的值。UI的dp要跟代碼里的xml文件里的dp要對應起來。 藍湖里設置一個寬度給對應上。然后把對應的值填入xml. 一個屏幕上的圖片到底是用topmarin來設置,還是用bottommarin來設置。 因為第一節,5,7 車廂的…

【taro3 + vue3 + webpack4】在微信小程序中的請求封裝及使用

前言 正在寫一個 以taro3 vue3 webpack4為基礎框架的微信小程序,之前一直沒有記咋寫的,現在總結記錄一下。uniapp vite 的后面出。 文章目錄 前言一、創建環境配置文件二、 配置 Taro 環境變量三、 創建請求封裝四、如何上傳到微信小程序體驗版1.第二…

LeetCode:513、找樹左下角的值

//遞歸法 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNode(int val, TreeNode left, TreeNode right) {* t…

采用均線策略來跟蹤和投資基金

策略來源#睿思量化#小程序 截圖來源#睿思量化#小程序 在基金投資中,趨勢跟蹤策略是一種備受關注的交易方法。本文將基于兩張關于廣發電子信息傳媒股票 A(代碼:005310)的圖片資料,詳細闡述這一策略的應用與效果。 從第…

leetcode刷題---二分查找

力扣題目鏈接 二分查找算法使用前提&#xff1a;有序數組&#xff1b;數組內無重復元素 易錯點&#xff1a; 1.while循環的邊界條件&#xff1a;如到底是 while(left < right) 還是 while(left < right) 2.if條件后right&#xff0c;left的取值&#xff1a;到底是 right …

(leetcode) 力扣100 10.和為K的子數組(前綴和+哈希)

題目 給你一個整數數組 nums 和一個整數 k &#xff0c;請你統計并返回 該數組中和為 k 的子數組的個數 。 子數組是數組中元素的連續非空序列。 數據范圍 1 < nums.length < 2 * 104 -1000 < nums[i] < 1000 -107 < k < 107 樣例 示例 1&#xff1a; 輸…