【SCSS】use的詳細使用規則

目錄

  • @use
    • 加載成員
    • 選擇命名空間
    • 私有成員
    • 配置
    • 使用 Mixin
    • 重新賦值變量

@use

從其他 Sass 樣式表中加載 mixins、函數和變量,并將來自多個樣式表的 CSS 組合在一起。@use加載的樣式表被稱為“模塊”。

加載成員

// src/_corners.scss
$radius: 3px;@mixin rounded {border-radius: $radius;
}
// style.scss
@use "src/corners";.button {@include corners.rounded;padding: 5px + corners.$radius;
}

選擇命名空間

默認情況下,模塊的命名空間只是其 URL 的最后一個組成部分,沒有文件擴展名。但是,有時您可能想要選擇不同的命名空間——您可能想要為經常引用的模塊使用較短的名稱,或者您可能正在加載具有相同文件名的多個模塊。你可以通過寫@use "<url>" as <namespace>,來做到這一點。

// src/_corners.scss
$radius: 3px;@mixin rounded {border-radius: $radius;
}
// style.scss
@use "src/corners" as c;.button {@include c.rounded;padding: 5px + c.$radius;
}

甚至可以通過編寫@use "<url>" as *.不過,建議只對編寫的樣式表執行此操作;否則,可能會引入導致名稱沖突的新成員!

// src/_corners.scss
$radius: 3px;@mixin rounded {border-radius: $radius;
}
// style.scss
@use "src/corners" as *;.button {@include rounded;padding: 5px + $radius;
}

私有成員

如果你想讓一個成員對整個包而不是單個模塊私有,只是不要從你的包的任何入口點轉發它的模塊(你告訴用戶加載以使用你的包的樣式表)。您甚至可以在轉發其模塊的其余部分時隱藏該成員!

// src/_corners.scss
$-radius: 3px;@mixin rounded {border-radius: $-radius;
}
// style.scss
@use "src/corners";.button {@include corners.rounded;// This is an error! $-radius isn't visible outside of `_corners.scss`.padding: 5px + corners.$-radius;
}

配置

樣式表可以使用!default標志定義變量,以使其可配置。要加載帶有配置的模塊,使用@use<url>with加載<variable>:<value>,<variable>:<value>樣式,配置的值將覆蓋變量的默認值。

// _library.scss
$black: #000 !default;
$border-radius: 0.25rem !default;
$box-shadow: 0 0.5rem 1rem rgba($black, 0.15) !default;code {border-radius: $border-radius;box-shadow: $box-shadow;
}
// style.scss
@use 'library' with ($black: #222,$border-radius: 0.1rem
);

使用 Mixin

使用@use ... with,配置模塊非常方便,尤其是在使用編寫的庫時,@import規則。但它并不是特別靈活,不建議將其用于更高級的用例。如果發現自己想要一次配置多個變量,將映射作為配置傳遞,或者在模塊加載后更新配置,請考慮編寫一個mixin來設置您的變量,然后再編寫一個mixin來注入樣式。

// _library.scss
$-black: #000;
$-border-radius: 0.25rem;
$-box-shadow: null;/// If the user has configured `$-box-shadow`, returns their configured value.
/// Otherwise returns a value derived from `$-black`.
@function -box-shadow() {@return $-box-shadow or (0 0.5rem 1rem rgba($-black, 0.15));
}@mixin configure($black: null, $border-radius: null, $box-shadow: null) {@if $black {$-black: $black !global;}@if $border-radius {$-border-radius: $border-radius !global;}@if $box-shadow {$-box-shadow: $box-shadow !global;}
}@mixin styles {code {border-radius: $-border-radius;box-shadow: -box-shadow();}
}
// style.scss
@use 'library';@include library.configure($black: #222,$border-radius: 0.1rem
);@include library.styles;

重新賦值變量

加載模塊后,可以重新賦值其變量。

// _library.scss
$color: red;
// _override.scss
@use 'library';
library.$color: blue;
// style.scss
@use 'library';
@use 'override';
@debug library.$color;  //=> blue

如果使用as *,給該模塊中定義的變量賦值,將覆蓋其在該模塊中的值。

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

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

相關文章

Hive面試問題

1.hive如何自定義函數 2.hive優化 3.hive數據傾斜 1.數據傾斜的表現 數據傾斜是由于數據分布不均勻&#xff0c;造成數據大量的集中到一點&#xff0c;造成數據熱點的現象。 主要表現&#xff1a;任務進度長時間維持在 99%或者 100%的附近&#xff0c;查看任務監控頁面Yarn(808…

分析示例 | Simufact焊接工藝仿真變形精確預測汽車結構

導語 焊接是汽車制造過程中一個關鍵環節&#xff0c;白車身、發動機、底盤和變速箱等都離不開焊接工藝的應用&#xff0c;主要涉及氣保焊、電阻點焊、激光焊、電子束焊等多種焊接工藝。由于汽車車型眾多、成形結構復雜、汽車制造質量、效率、成本等方面的綜合要求。如何高效、…

杰理AC632N提升edr的hid傳輸速率, 安卓絕對坐標觸摸點被識別成鼠標的修改方法

第一個問題: 首先修改edr的hid傳輸速率.修改你的板級配置,里面的一個地方給注釋掉了,請打開那個注釋就能提升edr的hid傳輸效率了 第二個問題: 修改632n系別把觸摸板的hid報告描述符識別成鼠標點,修改如下: 注釋掉上面的pnp,改成下面的

element plus的容器組件

element-plus的容器組件主要有el-container,el-aside,el-header,el-main,el-footer,后面4個組件其父組件必須是el-container。 el-container采用flex布局&#xff0c;如果其子元素包含el-header或el-footer時會采用垂直布局&#xff0c;否則會采用水平布局&#xff0c;可設置其…

LeetCode|938. Range Sum of BST

. 序言 開啟python刷題時代&#xff0c;主要也是為了面試。 . 題目 Given the root node of a binary search tree and two integers low and high, return the sum of values of all nodes with a value in the inclusive range [low, high]. Example 1: Input: root …

教程 | Navicat 17 管理連接新方法

Navicat 17 提供了比以往更多的連接數據庫實例的方式。除了傳統的連接字符串方式以外&#xff0c;Navicat 17 還支持 URI 連接&#xff0c;無論身在何處&#xff0c;都可以輕松地通過 URI 訪問對象。另外&#xff0c;還有一個新的管理連接功能&#xff0c;即允許你通過一個以用…

大數據揭秘

起源 不管是國內&#xff0c;國外的招聘目前數據分析工程師&#xff0c;或者是大數據工程師我感覺都是處于啟蒙階段&#xff0c;對于數據分析或者大數據沒有什么體系技術棧一說&#xff0c;相比于前后端&#xff0c;除了高端互聯網企業其他的企業招數據分析工程師我認為目前都…

公有云服務器部署springboot工程詳細步驟

以下是在公有云服務器上部署Spring Boot工程的詳細步驟&#xff1a; 在公有云服務器上安裝Java運行環境&#xff1a;&#xff08;記得配置環境變量&#xff09; sudo apt update sudo apt install default-jre下載和部署Spring Boot工程&#xff1a; 將Spring Boot工程打包成可…

深入Maven:從入門到精通的全面指南

目錄 Maven簡介安裝MavenMaven的基本概念 項目對象模型&#xff08;POM&#xff09;依賴管理生命周期插件 Maven命令Maven倉庫Maven的構建生命周期Maven插件Maven與IDE的集成Maven高級主題 多模塊項目自定義插件開發使用profiles 常見問題與解決方案Maven的最佳實踐總結與參考…

后端大量數據返回,采用數據壓縮+分片操作,加快前端響應速度,個人技術總結

1. 業務場景 場景類似于&#xff0c;可以查看到這段時間內指定的所有物品的運動軌跡&#xff0c;可以進行回放操作。 2. 解決方案 2.1. 在不考慮壓縮的情況&#xff0c;可以盡可能減少傳輸數據的大小 比如 {[{"consDept":"A部門","consDeptCode&…

【全開源】房屋出租出售預約系統(FastAdmin+ThinkPHP+Uniapp)

房屋出租出售預約系統&#xff1a;一站式解決房產交易難題 一款基于FastAdminThinkPHPUniapp開發的房屋出租出售預約系統&#xff0c;支持小程序、H5、APP&#xff0c;包含房客、房東(高級授權)、經紀人(高級授權)三種身份。核心功能有&#xff1a;新盤銷售、房屋租賃、地圖找…

Python 技巧分享:NEF 文件的元數據提取

介紹 隨著攝影技術的不斷發展&#xff0c;NEF 文件作為尼康相機的 RAW 格式文件&#xff0c;因其包含豐富的圖像數據和元數據&#xff0c;備受攝影愛好者和專業攝影師的青睞。提取 NEF 文件中的元數據對照片管理、分析及處理具有重要意義。本文將介紹如何使用 Python 技術&…

慎投!Hindawi這本SCI還在檢,這里已被踢!新增14本Scopus期刊被剔除!

本周投稿推薦 SSCI ? 中科院2區&#xff0c;6.0-7.0&#xff08;錄用友好&#xff09; EI ? 各領域沾邊均可&#xff08;2天錄用&#xff09; CNKI ? 3天內初審錄用&#xff0c;隨即出版&#xff08;急錄友好&#xff09; SCI&EI ? 4區生物醫學類&#xff0c;0…

電商數據驅動的決策智慧:深度解析數據采集與應用||電商API接口接入與應用

引言 在數字化時代&#xff0c;數據已成為電商企業最寶貴的資產之一。通過有效的數據采集&#xff0c;企業能夠洞察市場動態、理解消費者需求、優化運營策略&#xff0c;從而在激烈的市場競爭中脫穎而出。本文將深入探討電商數據采集的重要性、常用方法以及應用實踐。 一、電商…

C語言—內存函數

1. memcpy 使用和模擬實現 void* memcpy&#xff08;void* destination&#xff0c;const void* source&#xff0c;size_t num&#xff09;&#xff1b; 函數memcpy從source的位置開始向后復制num個字節的數據到destination指向的內存位置。這個函數在遇到 ‘\0’ 的時候并不…

Docker 教程-介紹-2

快速了解docker有什么。 Docker簡介 Docker 是一個開源的應用容器引擎&#xff0c;基于Go語言開發&#xff0c;并遵循Apache 2.0協議。它允許開發者將應用及其依賴包打包進一個可移植的容器中&#xff0c;這些容器可以發布到任何支持Docker的Linux或Windows機器上&#xff0c…

神經網絡 torch.nn---Convolution Layers

torch.nn — PyTorch 2.3 documentation torch.nn - PyTorch中文文檔 (pytorch-cn.readthedocs.io) torch.nn和torch.nn.functional的區別 torch.nn是對torch.nn.functional的一個封裝&#xff0c;讓使用torch.nn.functional里面的包的時候更加方便 torch.nn包含了torch.nn.…

Linux日志服務rsyslog深度解析(上)

&#x1f407;明明跟你說過&#xff1a;個人主頁 &#x1f3c5;個人專欄&#xff1a;《Linux &#xff1a;從菜鳥到飛鳥的逆襲》&#x1f3c5; &#x1f516;行路有良友&#xff0c;便是天堂&#x1f516; 目錄 一、引言 1、日志在Linux系統中的作用 2、rsyslog歷史背景 …

保姆級講解 FTP服務器的搭建、配置與管理

本來目錄很長的 因為感覺不太美觀 所以小標題都刪掉了 本文介紹了 本地用戶的FTP服務器搭建實例匿名用戶的FTP服務器搭建實例虛擬用戶的FTP服務器搭建實例企業常見類型搭建實驗 配置與管理FTP服務器 配置與管理FTP服務器一、FTP相關知識二、項目設計與準備三、項目實施四、認識…

實驗一、網絡傳輸介質————雙絞線 《計算機網絡》

蝙蝠身上長雞毛&#xff0c;忘了自己是什么鳥。 目錄 一、實驗目的 二、實驗內容 1.雙絞線的原理以及分類 2.了解雙絞線的性質、結構與特性 3.掌握雙絞線的制作方法 4.了解雙絞線的材質 5.了解雙絞線的發展趨勢 三、實驗小結 一、實驗目的 1.雙絞線的原理以及分類 2.了…