SCSS @at-root
@at-root指令可以使一個或多個規則被限定輸出在文件的根層級上,而不是被巢狀在其父選擇器下。
下面就通過程式碼例項介紹一下它的作用:
[Scss] 純文字檢視 複製程式碼.parent{ color:red; .child { width:200px; height:50px; } }
編譯成css程式碼如下:
[CSS] 純文字檢視 複製程式碼.parent { color: red; } .parent .child { width: 200px; height: 50px; }
上面是沒有使用@at-root命令的預設情況。
[Scss] 純文字檢視 複製程式碼.parent{ color:red; @at-root .child { width:200px; height:50px; } }
上面的程式碼編譯成css程式碼如下:
[CSS] 純文字檢視 複製程式碼.parent { color: red; } .child { width: 200px; height: 50px; }
由於使用@at-root命令,那麼.child就不參與巢狀,直接跳出巢狀。
[Scss] 純文字檢視 複製程式碼.parent { background:red; @at-root { .child-1 { width:200px; height:100px; } .child-2 { width:150px; height:50px; } } }
編譯成css程式碼例項如下:
[CSS] 純文字檢視 複製程式碼.parent { background: red; } .child-1 { width: 200px; height: 100px; } .child-2 { width: 150px; height: 50px; }
程式碼在預設情況下@at-root並不會使指定的規則或則選擇器跳出指令,比如@media或者@supports。
[Scss] 純文字檢視 複製程式碼@media print { @at-root{ .foo { color: green; color: gray; } } }
上面的程式碼編譯成CSS程式碼如下:
[CSS] 純文字檢視 複製程式碼@media print { .foo { color: green; color: gray; } }
可以看出@at-root預設情況下並不能使規則或者選擇器跳出指令。
和without和with配合使用解決上述問題,具體可以參閱SCSS without和with一章節。
相關文章
- Sass @at-root 指令用法示例
- scssCSS
- SCSS @importCSSImport
- SCSS @extendCSS
- SCSS @mixinCSS
- SCSS @if() 指令CSS
- SCSS @eachCSS
- SCSS !globalCSS
- SCSS @for 指令CSS
- SCSS !optionalCSS
- SCSS @mediaCSS
- L02 教程 5.4 筆記 SCSS 引入 SCSS筆記CSS
- SCSS #{} 插值CSS
- SCSS without和withCSS
- SCSS list 列表CSS
- SCSS 註釋CSS
- SCSS 安裝CSS
- SCSS 函式CSS函式
- SCSS @contentCSS
- SCSS @while指令CSSWhile
- SCSS map物件CSS物件
- scss學習CSS
- SCSS % 佔位符CSS
- scss不能用除法?CSS
- SCSS 的編譯CSS編譯
- SCSS @mixin傳參CSS
- SCSS Color 型別CSS型別
- SCSS 字串 型別CSS字串型別
- SCSS Null 型別CSSNull型別
- SCSS初接觸CSS
- SCSS 字串連線符CSS字串
- SCSS 邏輯運算子CSS
- Sass/Scss 基礎篇CSS
- SCSS 變數作用域CSS變數
- SCSS 變數的宣告CSS變數
- SCSS 原生css匯入CSS
- SCSS 巢狀屬性CSS巢狀
- SCSS 巢狀規則CSS巢狀