SCSS 巢狀規則
在編寫css程式碼的時候,可能由於巢狀的原因,需要多次重複書寫選擇器。
程式碼如下:
[CSS] 純文字檢視 複製程式碼#content article h1 { color: #333 } #content article p { margin-bottom: 1.4em } #content aside { background-color: #EEE }
上面的程式碼要多次重複#content和article選擇器,非常繁瑣,使用scss即可解決此問題。
程式碼如下:
[Scss] 純文字檢視 複製程式碼#content { article { h1 { color: #333 } p { margin-bottom: 1.4em } } aside { background-color: #EEE } } /* 編譯後 */ #content article h1 { color: #333 } #content article p { margin-bottom: 1.4em } #content aside { background-color: #EEE }
上面程式碼實現了包含選擇器的巢狀,邏輯非常簡單:
那就是使用大括號作為層級區分,一層一層實現巢狀,在編譯的時候再一層一層剝離出來。
關於包含選擇器可以參閱CSS (E F)包含選擇符一章節。
群組選擇器的巢狀:
關於群組選擇器可以參閱CSS 選擇器分組一章節。
先來看一段簡單的群組選擇器使用程式碼例項:
[CSS] 純文字檢視 複製程式碼.button, button { margin: 0; }
上面的是一個最為簡單的群組選擇器的應用,到此還看不到群組選擇器會給我帶來的麻煩。
再來看一段程式碼例項:
[CSS] 純文字檢視 複製程式碼.container h1, .container h2, .container h3 { margin-bottom: .8em }
上面的群組選擇器中,我們需要不斷的重複書寫.container選擇器。
使用scss就可以避免此問題,程式碼如下:
[Scss] 純文字檢視 複製程式碼.container { h1, h2, h3 {margin-bottom: .8em} }
上面是父選擇器出現重複,子選擇器如果出現重複也同樣可以使用scss簡化:
[CSS] 純文字檢視 複製程式碼nav a, aside a {color: blue}
上面的css程式碼可以使用scss編寫如下:
[Scss] 純文字檢視 複製程式碼nav, aside { a {color: blue} }
子組合選擇器和同層組合選擇器:
(1).>選擇器可以參閱CSS (E>F)子選擇符一章節。
(2).+選擇器可以參閱CSS (E+F)相鄰選擇符一章節。
(3).~選擇器可以參閱CSS (E~F)兄弟選擇符一章節。
css程式碼如下:
[CSS] 純文字檢視 複製程式碼article ~ article { border-top: 1px dashed #ccc } article > footer { background: #eee } article dl > dt { color: #333 } article dl > dd { color: #555 } nav + article { margin-top: 0 }
對應的scss程式碼如下:
[Scss] 純文字檢視 複製程式碼article { ~ article { border-top: 1px dashed #ccc } > section { background: #eee } dl > { dt { color: #333 } dd { color: #555 } } nav + & { margin-top: 0 } }
特別說明:~、和+選擇器既可以放在大括號的外部,也可以放在大括號的內部。
&的用法可以參閱scss &識別符號一章節。
相關文章
- html的巢狀規則HTML巢狀
- SCSS 巢狀屬性CSS巢狀
- 學習Sass 巢狀規則與屬性巢狀
- Java 程式碼規範if巢狀Java巢狀
- HTML網頁基本標籤的塊級、行級元素,特殊字元的巢狀規則HTML網頁字元巢狀
- springMVC:校驗框架:多規則校驗,巢狀校驗,分組校驗;ssm整合技術SpringMVC框架巢狀SSM
- 南陽 ACM16 矩形巢狀 動態規劃ACM巢狀動態規劃
- 列表巢狀操作巢狀
- vue路由巢狀Vue路由巢狀
- 展開巢狀列表巢狀
- Locust 任務巢狀巢狀
- Oracle 巢狀表(轉)Oracle巢狀
- 巢狀類遞迴巢狀遞迴
- vue(19)巢狀路由Vue巢狀路由
- 巢狀子查詢巢狀
- Blazor巢狀傳遞Blazor巢狀
- MySQL Join原理分析(緩衝塊巢狀與索引巢狀迴圈)MySql巢狀索引
- 小程式選人控制元件 - 仿企業微信實現多選及多層級無規則巢狀控制元件巢狀
- 小程式選人控制元件 – 仿企業微信實現多選及多層級無規則巢狀控制元件巢狀
- BEM命名規範結合SCSSCSS
- 使用 Prometheus 監控 eKuiper 規則執行狀態PrometheusUI
- vue-router 巢狀路由Vue巢狀路由
- JavaScript字串引號巢狀JavaScript字串巢狀
- 封裝多型巢狀封裝多型巢狀
- Python .get 巢狀 JSON 值Python巢狀JSON
- repeater中巢狀放入RadioButtonList巢狀
- 【Qt6】巢狀 QWindowQT巢狀
- nginx 如何實現 if 巢狀Nginx巢狀
- Vue中的巢狀路由Vue巢狀路由
- vue巢狀元件傳參Vue巢狀元件
- 為什麼HTML不能巢狀PHP,而PHP檔案卻可以巢狀HTMLHTML巢狀PHP
- 對比SQL中簡單巢狀查詢與非巢狀查詢CFSQL巢狀
- 手把手教你實現json巢狀物件的正規化化和反正規化化JSON巢狀物件
- sql server中巢狀事務*SQLServer巢狀
- ViewPager巢狀fragment簡單使用Viewpager巢狀Fragment
- golang的巢狀事務管理Golang巢狀
- 虛擬機器巢狀 VMWare虛擬機巢狀
- Java進階07 巢狀類Java巢狀