成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

Sass 與 SCSS 是什么關(guān)系?

funnyZhang / 2693人閱讀

摘要:下面是一個(gè)簡(jiǎn)短的說(shuō)明當(dāng)我們說(shuō)起,我們經(jīng)常指的是兩種事物一種預(yù)處理器和一種語(yǔ)言。同時(shí),預(yù)處理器有兩種不同的語(yǔ)法一種縮進(jìn)語(yǔ)法一種語(yǔ)法歷史最開(kāi)始,是的一部分,是一種預(yù)處理器,由開(kāi)發(fā)者設(shè)計(jì)和開(kāi)發(fā)。

我最近寫(xiě)了很多 Sass 代碼,但是最近發(fā)現(xiàn)并不是每一個(gè)人都知道 Sass 具體是什么。下面是一個(gè)簡(jiǎn)短的說(shuō)明:

當(dāng)我們說(shuō)起 Sass ,我們經(jīng)常指的是兩種事物:一種 css 預(yù)處理器和一種語(yǔ)言。我們經(jīng)常這樣說(shuō),“我們正在使用 Sass”,或者 “這是一個(gè) Sass mixin”。同時(shí),Sass (預(yù)處理器)有兩種不同的語(yǔ)法:

Sass,一種縮進(jìn)語(yǔ)法

SCSS,一種 CSS-like 語(yǔ)法

歷史

最開(kāi)始,Sass 是Haml的一部分,Haml 是一種預(yù)處理器,由 Ruby 開(kāi)發(fā)者設(shè)計(jì)和開(kāi)發(fā)。因?yàn)檫@樣,Sass 使用類(lèi)似 Ruby的語(yǔ)法,沒(méi)有花括號(hào),沒(méi)有分號(hào),具有嚴(yán)格的縮進(jìn),就像這樣:

// Variable
!primary-color= hotpink

// Mixin
=border-radius(!radius)
    -webkit-border-radius= !radius
    -moz-border-radius= !radius
    border-radius= !radius

.my-element
    color= !primary-color
    width= 100%
    overflow= hidden

.my-other-element
    +border-radius(5px)

你可以就看到,這和CSS代碼有很大的區(qū)別!即使你是一個(gè) Sass(預(yù)處理器) 用戶,你也會(huì)發(fā)現(xiàn)這和你正在使用的有很大的差別。變量的標(biāo)志用 !,而不是$,分配符是=而不是:。非常怪異。

但是在2010年五月之前,Sass 就是這個(gè)樣子的。2010年5月,官方推出了一個(gè)全新的語(yǔ)法,被叫做 SCSS,意思是 Sassy CSS。這個(gè)語(yǔ)法帶來(lái)了對(duì) CSS 友好的語(yǔ)法,試圖彌合 Sass 和 CSS 之間的鴻溝。

// Variable
$primary-color: hotpink;

// Mixin
@mixin border-radius($radius) {
    -webkit-border-radius: $radius;
    -moz-border-radius: $radius;
    border-radius: $radius;
}

.my-element {
    color: $primary-color;
    width: 100%;
    overflow: hidden;
}

.my-other-element {
    @include border-radius(5px);
}

SCSS 和 Sass 相比更加貼近 CSS 語(yǔ)法。也就是說(shuō),Sass 維護(hù)者做了大量的工作,把縮進(jìn)語(yǔ)法中的!=換成了 SCSS 中的 $:。

現(xiàn)在,在開(kāi)始一個(gè)新項(xiàng)目時(shí),你也許疑惑要用哪種語(yǔ)法。讓我們來(lái)看看兩種語(yǔ)法的優(yōu)劣。

Sass縮進(jìn)語(yǔ)法的優(yōu)劣

雖然語(yǔ)法看起來(lái)怪異,但是縮進(jìn)語(yǔ)法有很多有趣的點(diǎn)。首先,它 更短并且更易于書(shū)寫(xiě)。沒(méi)有花括號(hào),沒(méi)有分號(hào),你完全不需要這些東西。更好的是,你甚至不需要@mixin 或者 @include, 一個(gè)字符就足夠了:=+。

同時(shí) Sass 通過(guò)嚴(yán)格的縮進(jìn)來(lái)強(qiáng)制 clean coding standards。因?yàn)橐粋€(gè)錯(cuò)誤的縮進(jìn)就會(huì)破壞整個(gè).sass文件,這使得整個(gè)代碼總是clean 和格式良好的。只有一種寫(xiě) Sass 代碼的方式:正確的方式。

但是請(qǐng)注意!縮進(jìn)在 Sass 中是有意義的。當(dāng)你縮進(jìn)了一個(gè)元素,這意味這你將它變?yōu)榱酥霸氐淖釉?。比?

.element-a
    color: hotpink

    .element-b
        float: left

以上會(huì)輸出下面的 CSS 代碼:

.element-a {
    color: hotpink;
}

.element-a .element-b {
    float: left;
}

.element-b 向右一格以為著它變成了 .element-a 的子元素,改變了輸出 CSS 代碼的結(jié)果。所以一定要小心你的代碼縮進(jìn)。

另外,我覺(jué)得基于縮進(jìn)的語(yǔ)法適合于 Ruby/Python 團(tuán)隊(duì),而不適合 PHP/Java 團(tuán)隊(duì)。(這是值得商榷的,我也希望聽(tīng)到不同的聲音)

SCSS語(yǔ)法的優(yōu)劣

對(duì)于初學(xué)者,SCSS 是完全和 CSS 兼容的,這意味著幾乎為零的學(xué)習(xí)曲線。SCSS語(yǔ)法即是:它只是加了一些功能的 CSS。當(dāng)你和沒(méi)經(jīng)驗(yàn)的開(kāi)發(fā)者一起工作時(shí)這很重要:他們可以很快開(kāi)始編碼而不需要首先去學(xué)習(xí)Sass。

此外,SCSS 還是 易于閱讀 的,因?yàn)樗怯姓Z(yǔ)義的,而不是用符號(hào)表示。當(dāng)你讀到 @mixin,你就會(huì)知道這是一個(gè) mixin 聲明;當(dāng)你看到 @include ,你就是在引用一個(gè) mixin。他并沒(méi)有用任何縮寫(xiě),當(dāng)你大聲讀出來(lái)時(shí)所有的都很明了。

還有,現(xiàn)在幾乎所有 Sass 的工具,插件和 demo 都是基于 SCSS語(yǔ)法來(lái)開(kāi)發(fā)的。隨著時(shí)間過(guò)去,SCSS 會(huì)變成大家首選的選擇。比如,你現(xiàn)在很難找到一個(gè) Sass 縮進(jìn)語(yǔ)法的高亮插件,通常都只有 SCSS 的可以用。

總結(jié)

如何選擇取決于你,但是除非你有很好的理由一定要使用縮進(jìn)的語(yǔ)法,我強(qiáng)烈推薦使用 SCSS 。不僅僅它很簡(jiǎn)單,同時(shí)他也很方便。

最后請(qǐng)注意 Sass 從來(lái)沒(méi)有大寫(xiě)過(guò),無(wú)論你指的是語(yǔ)法或者這個(gè)語(yǔ)言。同時(shí), SCSS 一直是大寫(xiě)的。甚至有一個(gè)網(wǎng)站專(zhuān)門(mén)來(lái)提醒你這件事!

翻譯自What’s the Difference Between Sass and SCSS?

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/115318.html

相關(guān)文章

  • CSS 強(qiáng)化裝備!Sass 安裝使用

    摘要:不過(guò)必須要先安裝,然后再安裝。淘寶鏡像安裝由于國(guó)內(nèi)網(wǎng)絡(luò)原因你懂的,導(dǎo)致存放在上面的資源文件間歇性連接失敗。嵌套可以進(jìn)行選擇器的嵌套,表示層級(jí)關(guān)系。重要注釋管理項(xiàng)目文件結(jié)構(gòu)預(yù)處理器的特點(diǎn)之一是可以把你的代碼分割成很多文件,而且不會(huì)影響性能。 Sass 是什么? showImg(https://segmentfault.com/img/bVqyKF); Sass 是 Syntactical...

    wuyumin 評(píng)論0 收藏0
  • CSS、Sass、Scss,以及sassscss的區(qū)別

    摘要:即元素脫離文檔流的布局,在頁(yè)面的任意位置顯示絕對(duì)定位脫離文檔流的布局,遺留下來(lái)的空間由后面的元素填充。相對(duì)定位不脫離文檔流的布局,只改變自身的位置,在文檔流原先的位置遺留空白區(qū)域。 1、描述 CSS 指層疊樣式表 (Cascading Style Sheets) Sass (Syntactically Awesome StyleSheets),是由buby語(yǔ)言編寫(xiě)的一款css預(yù)處理...

    caozhijian 評(píng)論0 收藏0
  • 前端架構(gòu)gulpwebpack(知識(shí)點(diǎn)整理)

    摘要:是通過(guò)加載器和插件對(duì)資源進(jìn)行處理的。另外我們知道是對(duì)整個(gè)過(guò)程進(jìn)行控制,所以在其配置文件中配置的每一個(gè)對(duì)項(xiàng)目中該配置路徑下所有的資源都可以管理。 一 概念介紹 gulp 是 task runner,Webpack 是 module bundler。可以這么說(shuō), Webpack 和 gulp 本身都有 95% 的功能是不能被對(duì)方替代,或者直接說(shuō)和對(duì)方不重疊的。 1 什么是gulp Gulp...

    willin 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<