scss一些用法

中文文檔地址:https://www.sasscss.com/docs/#css-extensions

1. 嵌套樣式

允許將一個(gè) CSS 樣式嵌套進(jìn)另一個(gè)樣式中姨蟋。

body {
  min-height: 100vh;
  .box {
    height: 100px;
    background: #000;
    display: flex;
    align-items: center;
    justify-content: center;
    .content {
      height: 50px;
      width: 50px;
      background: #999;
    }
  }
}

2. 引用父級(jí)選擇器: ‘&’

a {
  font-weight: bold;
  text-decoration: none;
  &:hover {
    text-decoration: underline;
  }
}

& 必須出現(xiàn)在的選擇器的開(kāi)頭位置, 可以跟隨后綴。

#main {
  color: black;
  &-sidebar { border: 1px solid; }
}

2. 嵌套屬性

.box {
    font: {
      family: fantasy;
      size: 30em;
      weight: bold;
    }
}
// 編譯為
.box {
  font-family: fantasy; 
  font-size: 30em;  
  font-weight: bold; 
}

3. 變量 ‘$’

$width: 100px;
.box {
  width: $width;
}

作用域: 不在任何嵌套選擇器內(nèi)定義的變量則在可任何地方使用立帖,嵌套在選擇器內(nèi)的只有嵌套層級(jí)范圍內(nèi)可用眼溶。可以在后面添加 !global 標(biāo)志厘惦,就可以全局引用(不推薦使用)

#main {
  $width: 5em !global;
      width: $width;
}

#sidebar {
  width: $width;
}

4. 運(yùn)算

支持對(duì)數(shù)字標(biāo)準(zhǔn)的算術(shù)運(yùn)算(加法 +偷仿,減法 - ,乘法 * 宵蕉,除法 / 和取模 % )酝静,數(shù)字支持關(guān)系運(yùn)算符(<, >, <=, >=),并且所有類(lèi)型支持相等運(yùn)算符(==, !=)

  1. 除法 /
p {
  font: 10px/8px;             // 原生的CSS羡玛,不作為除法
  $width: 1000px;
      width: $width/2;            // 使用了變量, 作為除法
  width: round(1.5)/2;        // 使用了函數(shù), 作為除法
  height: (500px/2);          // 使用了括號(hào), 作為除法
  margin-left: 5px + 8px/2px; // 使用了 +, 作為除法
  font: (italic bold 10px/8px); // 在一個(gè)列表(list)中别智,括號(hào)可以被忽略。
}

如果你想純CSS 的/和變量一起使用(愚人碼頭注:即/不作為除法使用)稼稿,你可以使用#{}插入他們薄榛。例如:

p {
  $font-size: 12px;
      $line-height: 30px;
  font: #{$font-size}/#{$line-height};
}

5. mixin

// 定義 @minxin
@mixin large-text {
  font: {
    family: Arial;
    size: 20px;
    weight: bold;
  }
  color: #ff0000;
}
// 引入 @include
.page-title {
  @include large-text;
  padding: 4px;
  margin-top: 10px;
}

可以設(shè)置參數(shù)

@mixin large-text($color) {
  font: {
    family: Arial;
    size: 20px;
    weight: bold;
  }
  color: $color;
}

.page-title {
  $green: green;
  @include large-text($green);
  padding: 4px;
  margin-top: 10px;
}

// 可以引入默認(rèn)值,要是沒(méi)有傳參數(shù)让歼,就使用默認(rèn)值

@mixin large-text($color: red) {
  font: {
    family: Arial;
    size: 20px;
    weight: bold;
  }
  color: $color;
}

.page-title {
  @include large-text;
  padding: 4px;
  margin-top: 10px;
}
// color 會(huì)編譯為 red

6. 函數(shù)

@function px($npx){
  @return $npx/375 * 100vw
}

.icons {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0 px(20);
  margin-top: px(20);
  .icon {
    background: #eee;
    height: px(48);
    width: px(48);
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-shrink: 0;
  }
}
// 可以適應(yīng)不同尺寸手機(jī)端

7. 媒體查詢

$break-small: 320px;
$break-large: 1024px;

@mixin respond-to($media) {
  @if $media == handhelds {
    @media only screen and (max-width: $break-small) { @content; }
  }
  @else if $media == medium-screens {
    @media only screen and (min-width: $break-small + 1) and (max-width: $break-large - 1) { @content; }
  }
  @else if $media == wide-screens {
    @media only screen and (min-width: $break-large) { @content; }
  }
}
.profile-pic {
  float: left;
  width: 250px;
  @include respond-to(handhelds) { width: 100% ;}
  @include respond-to(medium-screens) { width: 125px; }
  @include respond-to(wide-screens) { float: none; }
}

// 編譯后

.profile-pic {
  float: left;
  width: 250px;
}
@media only screen and (max-width: 320px) {
  .profile-pic {
    width: 100%;
  }
}
@media only screen and (min-width: 321px) and (max-width: 1023px) {
  .profile-pic {
    width: 125px;
  }
}
@media only screen and (min-width: 1024px) {
  .profile-pic {
    float: none;
  }
}

8. 一個(gè)按鈕小例子 (hover 之后上下敞恋,左右抖動(dòng))

*{box-sizing: border-box; padding: 0; margin: 0;}
body{
  min-height: 100vh;
  display: flex;
  justify-content: center;
  align-items: center;
}
@mixin createButton($color){
  background: $color;
  box-shadow: 0 4px 0 darken($color,15%)
}
.buttonWrapper{
  button {
    margin: 0 40px;
    border: none;
    padding: 10px 20px;
    border-radius: 4px;
    color: #fff;
    font-size: 18px;
    &:first-child {
      $blue: #55acee;
      @include createButton($blue);
      &:hover {
        animation-duration: 0.3s;
        animation-name: left-right; 
      }
    }
    &:nth-child(2) {
      $green: #2ecc71;
      @include createButton($green);
        &:hover{
          animation-name: up-down;
          animation-duration: 0.3s;
      }
    }
  }
}
$n: 10%;
$step: 25%;
@keyframes left-right {
  @for $i from 0 to 4 {
    #{$i * $step}{
      @if $i % 2 == 0 {
        transform: translateX($n)
      }@else{
        transform: translateX(-$n)
      }
    }
  }
  100%{
    transform: translateX(0)
  }
}
$n2: 20%;
$step: 25%;
@keyframes up-down {
  @for $i from 0 to 4 {
    #{$i * $step}{
      @if $i % 2 == 0 {
        transform: translateY($n2)
      }@else{
        transform: translateY(-$n2)
      }
    }
  }
  100%{
    transform: translateY(0)
  }
}
預(yù)覽
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市谋右,隨后出現(xiàn)的幾起案子硬猫,更是在濱河造成了極大的恐慌,老刑警劉巖改执,帶你破解...
    沈念sama閱讀 211,561評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件啸蜜,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡辈挂,警方通過(guò)查閱死者的電腦和手機(jī)衬横,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,218評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)终蒂,“玉大人蜂林,你說(shuō)我怎么就攤上這事遥诉。” “怎么了噪叙?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,162評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵突那,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我构眯,道長(zhǎng),這世上最難降的妖魔是什么早龟? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,470評(píng)論 1 283
  • 正文 為了忘掉前任惫霸,我火速辦了婚禮,結(jié)果婚禮上葱弟,老公的妹妹穿的比我還像新娘壹店。我一直安慰自己,他們只是感情好芝加,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,550評(píng)論 6 385
  • 文/花漫 我一把揭開(kāi)白布硅卢。 她就那樣靜靜地躺著,像睡著了一般藏杖。 火紅的嫁衣襯著肌膚如雪将塑。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,806評(píng)論 1 290
  • 那天蝌麸,我揣著相機(jī)與錄音点寥,去河邊找鬼。 笑死来吩,一個(gè)胖子當(dāng)著我的面吹牛敢辩,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播弟疆,決...
    沈念sama閱讀 38,951評(píng)論 3 407
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼戚长,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了怠苔?” 一聲冷哼從身側(cè)響起同廉,我...
    開(kāi)封第一講書(shū)人閱讀 37,712評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎嘀略,沒(méi)想到半個(gè)月后恤溶,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,166評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡帜羊,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,510評(píng)論 2 327
  • 正文 我和宋清朗相戀三年咒程,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片讼育。...
    茶點(diǎn)故事閱讀 38,643評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡帐姻,死狀恐怖稠集,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情饥瓷,我是刑警寧澤剥纷,帶...
    沈念sama閱讀 34,306評(píng)論 4 330
  • 正文 年R本政府宣布,位于F島的核電站呢铆,受9級(jí)特大地震影響晦鞋,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜棺克,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,930評(píng)論 3 313
  • 文/蒙蒙 一悠垛、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧娜谊,春花似錦确买、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,745評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至派草,卻和暖如春搀缠,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背澳眷。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,983評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工胡嘿, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人钳踊。 一個(gè)月前我還...
    沈念sama閱讀 46,351評(píng)論 2 360
  • 正文 我出身青樓衷敌,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親拓瞪。 傳聞我的和親對(duì)象是個(gè)殘疾皇子缴罗,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,509評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML標(biāo)準(zhǔn)祭埂。 注意:講述HT...
    kismetajun閱讀 27,449評(píng)論 1 45
  • 慕課網(wǎng)學(xué)習(xí)筆記 什么是 CSS 預(yù)處理器面氓? CSS 預(yù)處理器定義了一種新的語(yǔ)言,其基本思想是蛆橡,用一種專(zhuān)門(mén)的編程語(yǔ)言...
    打鐵大師閱讀 1,279評(píng)論 0 1
  • 一舌界、Python簡(jiǎn)介和環(huán)境搭建以及pip的安裝 4課時(shí)實(shí)驗(yàn)課主要內(nèi)容 【Python簡(jiǎn)介】: Python 是一個(gè)...
    _小老虎_閱讀 5,725評(píng)論 0 10
  • 概要 64學(xué)時(shí) 3.5學(xué)分 章節(jié)安排 電子商務(wù)網(wǎng)站概況 HTML5+CSS3 JavaScript Node 電子...
    阿啊阿吖丁閱讀 9,125評(píng)論 0 3
  • 你很像一艘船拋了錨 勾在我的心上,而不是耳邊的發(fā)梢 你顛簸在風(fēng)雨和浪濤 不曾隨波去遠(yuǎn)泰演,卻劃開(kāi)了深深地一道 . 那艘...
    水搖絹閱讀 277評(píng)論 0 1