sass學習(一):變數、巢狀與匯入
一 使用變數
sass使用的一大好處就是可以使用變數,對於那些重複使用的屬性,可以通過變數名來引用。
1.變數宣告
sass中變數通過$來宣告,書寫方法與CSS相似,屬性值可以使用空格和逗號進行分割。與CSS屬性不同的是,其變數可以宣告在規則塊外,在規則塊內部宣告的變數只能在本規則塊內使用。舉例如下:
$nav-color: #F90;
nav {
$width: 100px;
width: $width;
color: $nav-color;
}
//編譯後
nav {
width: 100px;
color: #F90;
}
2.變數引用
CSS標準值可以存在的地方變數就可以引用,CSS生成時,變數會被他們的值所替代。
3.變數名中的下劃線
變數名中的中劃線與下劃線是相互相容的,也就是說,當宣告變數為a-b時,使用a_b也可以進行引用,但是這個規則對於純CSS來說如id,class名是不適用的。
二 巢狀規則
1.普通巢狀
sass提供巢狀規則,在CSS中,對於某一塊的樣式設定常常需要寫很多遍,但是使用巢狀會使得要是設定更加清晰,避免了重複書寫,可讀性高,當被解析為CSS時,便會將巢狀恢復成CSS對應的樣式,舉例如下:
大多數情況下我們都可以使用巢狀,它在解析時將父選擇器加一個空格放在子選擇器的前面,但存在偽類如:hover時,則需要特殊處理。#content { article { h1 { color: #333 } p { margin-bottom: 1.4em } } aside { background-color: #EEE } }
2.父選擇器&
有時我們不希望後代選擇器生成這種連線,比如下面這種情況sass就無法工作:
article a {
color: blue;
:hover { color: red }
}
解決這種問題的辦法是使用一種特殊的sass選擇器,即父選擇器,他是用&符號,可以放在選擇器可放置的地方,可以解開巢狀規則的控制,他不會像後代選擇器進行拼接,而是直接使用父選擇器直接替換&。3.群組選擇器的巢狀
當在同一個容器元素裡需要對群組進行樣式設定時,使用巢狀可以減少程式碼量,舉例如下:
.container {
h1, h2, h3 {margin-bottom: .8em}
}
nav, aside {
a {color: blue}
}
4.子組合選擇器和同層組合選擇器
使用>表示選擇子代,使用+選擇相鄰的同層元素,使用~選擇同層選擇器,在巢狀中可以自由的選擇使用以上選擇器,舉例如下:article {
~ article { border-top: 1px dashed #ccc }
> section { background: #eee }
dl > {
dt { color: #333 }
dd { color: #555 }
}
nav + & { margin-top: 0 }
}
5.屬性巢狀
除了選擇器,屬性也可以巢狀編寫,對於border-width,border-color等屬性,在sass中只需要寫一次border,巢狀屬性的規則是這樣的:把屬性名從中劃線-的地方斷開,在根屬性後邊新增一個冒號:,緊跟一個{ }塊,把子屬性部分寫在這個{ }塊中。就像css選擇器巢狀一樣,sass會把你的子屬性一一解開,把根屬性和子屬性部分通過中劃線-連線起來,最後生成的效果與你手動一遍遍寫的css樣式一樣:
nav {
border: {
style: solid;
width: 1px;
color: #ccc;
}
}
三匯入sass檔案
sass可以使結構更加清晰,減少程式碼重複編寫的同時增加了程式碼的可讀性,但當代碼的量比較大時,就會變得不那麼清晰,故而可以拆開成多個樣式檔案,css與sass都有@import規則,即從外部引入其他的樣式,差別是,css在執行到@import時,才會從外部載入css,這會使得網頁載入速度變慢,而sass會在當時直接載入外部檔案。1.sass區域性檔案
有時我們並不需要把所有的sass檔案轉換為單獨的css檔案,對於不想轉換成為css檔案的,可將其檔名前加上下劃線,當@import一個檔案時,可以不寫其全名,直接寫下劃線後面的部分。
2.預設變數值
sass的同一變數若宣告多次,則後面的樣式會覆蓋前面的樣式,我們可以使用!default的方式,將某一樣式宣告為預設樣式,當匯入檔案對這一變數有賦值時,則其為所賦值,否則為預設值。
3.巢狀匯入
跟原生的css不同,sass允許@import命令寫在css規則內。這種匯入方式下,生成對應的css檔案時,區域性檔案會被直接插入到css規則內匯入它的地方。
4.原生匯入
sass通常會在@import處以sass格式匯入檔案,也可以相容css,當以下三種情況出現時,會以原生的方式匯入,這會造成瀏覽器的額外下載:
1)檔案字尾是.css;2)被匯入的檔案是一個url地址;3)被匯入的檔案是url()的值。
相關推薦
sass學習(一):變數、巢狀與匯入
一 使用變數 sass使用的一大好處就是可以使用變數,對於那些重複使用的屬性,可以通過變數名來引用。 1.變數宣告 sass中變數通過$來宣告,書寫方法與CSS相似,屬性值可以使用空格和逗號進行分割。與CSS屬性不同的是,其變數可以宣告在規則塊外,在規則塊內部宣告的變數只能
Electron學習一:Electron、Node.js、JavaScript、JQuery、Vue.js、Angular.js的不同
結論 這些技術,成就JavaScript大法,全面實現JavaScript語言在Web、桌面、移動、伺服器等領域應用。 JavaScript是一種指令碼程式語言,常用在瀏覽器前端頁面動態效
python實現opencv學習一:安裝、環境配置、工具
一:python的下載、安裝、配置以python2.7.9為例二:安裝pip進入Python安裝目錄下的Scripts路徑,執行 easy_install.exe pip 出現下圖,說明pip安裝成功。 pip 的作用:通用的 Python 包管理工具,提供了對 Python
C#程式設計基礎第四課2:使用if語句、if-else語句、多重if語句、巢狀if語句完成的C#控制檯小程式
知識點:基本算術運算、簡單if語句、if-else語句的練習。利用語句完成簡單C#控制檯程式。 1、運用if-else語句,判斷使用者輸入的年份是否是閏年 static void Main(string[] args) { /*
C#程式設計基礎第四課:c#中的邏輯運算子、多重if語句、巢狀if語句的使用
知識點:邏輯運算子、多重if語句、巢狀if語句 1、邏輯運算子 練習1:邏輯或、邏輯與運算子的使用 本次計算機考試成績規定:筆試成績等於100分且機試成績大於等於60分,或筆試成績大於等於60分且機試成績等於100分, 輸出“成績優秀”,&
系統學習機器學習之特徵工程(二)--離散型特徵編碼方式:LabelEncoder、one-hot與啞變數*
轉自:https://www.cnblogs.com/lianyingteng/p/7792693.html 在機器學習問題中,我們通過訓練資料集學習得到的其實就是一組模型的引數,然後通過學習得到的引數確定模型的表示,最後用這個模型再去進行我們後續的預測分類等工作。在模型訓練過程中,我們會對訓練
es6學習一:es6變數
宣告變數let: let與var宣告變數的差別: let宣告的變數不存在預解析: // let宣告的變數不存在預解析 console.log(flag1); console.log(flag2); var flag1 = 123; let flag2 = 456; let宣告的
VUE學習筆記(三)-子路由、多路由、巢狀路由、動態路由都是什麼鬼?
最近學習到VUE路由這塊,發現這塊知識點有點多,好容易混亂,我的學習習慣就是先要建立框架,然後再去挨個學習搞懂,所以先來把概念搞搞清楚再說。 首先,我們要知道VUE路由建立的是單頁面路由。 子路由其實和單路由意思是一樣的,單路由應該很好理解,因為我們都知道路由是可以一層一層巢狀的,你可以
JavaScript學習筆記(一)——變數、作用域問題
一、基本型別和引用型別的值 ECMAScript變數包含兩種不同資料型別的值:基本型別值和引用型別值。 基本型別值指儲存在棧記憶體中的簡單資料段,即完全儲存在內容中的一個位置。 引用型別值則指儲存在堆記憶體中的物件,實際上儲存的是一個指標,指向記憶體的另一個位置,該位置儲存物件。 1
JAVA NIO學習一:NIO簡介、NIO&IO的主要區別
在前面學習了IO之後,今天我們開始進入NIO學習環節,首先我們會NIO做一個簡單的介紹,讓大家認識NIO,然後會和IO進行一個對比認識進行區分。好了,下面我們就開始學習: 一、NIO簡介 1.概述 從JDK1.4開始,Java提供了一系列改進的輸入/輸出處理的新特性,被統稱為NIO(即N
十二、字典(下):字典的巢狀
(一)、字典列表 字典列表,顧名思義就是以字典為元素的列表 # 三個字典儲存三個學生的資訊 student_0 = {'name': 'zhangsan', 'age': '18'} student_
【學習筆記】四:變數、作用域和記憶體問題
1.引用型別的值 引用型別的值是指儲存在記憶體中的物件,JavaScript不允許直接訪問記憶體中的位置,因此在操作物件時,實際上是操作的引用而不是實際的物件。(嚴密的說法是:當複製儲存著物件的某個變數時,操作的是物件的引用。但為物件新增屬性時,操作的是實際物件)。 1)引用型別可以動態新增屬性。
RabbitMQ的學習(一):Windows下安裝及配置RabbitMQ,erlang環境變數
前言:從本章開始,慢慢去了解並深化架構師成長路上所需要的基礎框架:訊息中介軟體; 從這裡開始,會一直往下學習,從what to do到how to do 到why to do。先學會如何使用中介軟體,到後面慢慢去體會中介軟體原理及精髓,然後到最後自己再搭建一個簡單的中介軟體框架。這是該分類的
“全棧2019”Java第六十七章:內部類、巢狀類詳解
難度 初級 學習時間 10分鐘 適合人群 零基礎 開發語言 Java 開發環境 JDK v11 IntelliJ IDEA v2018.3 文章原文連結 “全棧2019”Java第六十七章:內部類、巢狀類詳解 下一章 “全棧2019”Java第六十八章:外部類訪問內部類
AgileEAS.NET SOA 中介軟體平臺5.2版本下載、配置學習(一):下載平臺並基於直連環境執行
一、前言 AgileEAS.NET SOA 中介軟體平臺是一款基於基於敏捷並行開發思想和Microsoft .Net構件(元件)開發技術而構建的一個快速開發應用平臺。用於幫助中小型軟體企業建立一條適合市場快速變化的開發團隊,以達到節省開發成本、縮短開發時間,快速適應市場變化的目的。 A
Typescript 學習筆記一:介紹、安裝、編譯
前言 整理了一下 Typescript 的學習筆記,方便後期遺忘某個知識點的時候,快速回憶。 為了避免凌亂,用 gitbook 結合 marketdown 整理的。 若是有不對的地方,歡迎留言指出。 眾所周知,JavaScript 是弱型別的,而這對開發人員來說,在一定程度上算是一個“痛點”。解
Tensorflow學習筆記:變數作用域、模型的載入與儲存、執行緒與佇列實現多執行緒讀取樣本
# tensorflow變數作用域 用上下文語句規定作用域 with tf.variable_scope("作用域_name") ......
Shell程式設計學習筆記一(變數、運算子)
1.Shell是什麼 Shell 是一個命令列直譯器,它為使用者提供了一個向 Linux 核心傳送請求以便執行程式的介面系統級程式,使用者可以用 Shell 來啟動、掛起、停止甚至是編寫一些程式。 Shell(殼)可操控 Core(核心) 2.Shell指令碼的執行方式 (1)
es的巢狀聚合、巢狀分析、下鑽分析案例學習之Elasticsearch 07
es的restful api在學習和理解es的所欲知識點和功能點: 1、es最重要的api,讓我們進行各種嘗試、學習甚至在某些環境下進行使用的api,就是restful api。如果你學習不用es restful api,比如我上來就用java api來學習es,也是可以的,但是你根本就漏掉了es知識的
Qt學習四:控制元件一:按鈕、標籤、單行文字、多行文字
這是第一波控制元件 其中qtButton.h #ifndef QTBUTTON_H #define QTBUTTON_H #include <QtWidgets/QMainWindow>