Jawaban:
Sass adalah pra-prosesor CSS dengan kemajuan sintaksis. Lembar gaya dalam sintaksis lanjutan diproses oleh program, dan diubah menjadi lembar gaya CSS biasa. Namun, mereka tidak memperluas standar CSS itu sendiri.
Variabel CSS didukung dan dapat dimanfaatkan tetapi tidak serta variabel pra-prosesor.
Untuk perbedaan antara SCSS dan Sass, teks ini pada halaman dokumentasi Sass harus menjawab pertanyaan:
Ada dua sintaks yang tersedia untuk Sass. Yang pertama, dikenal sebagai SCSS (Sassy CSS) dan digunakan di seluruh referensi ini, adalah perpanjangan dari sintaks CSS. Ini berarti bahwa setiap lembar gaya CSS yang valid adalah file SCSS yang valid dengan arti yang sama. Sintaks ini ditingkatkan dengan fitur Sass yang dijelaskan di bawah ini. File yang menggunakan sintaks ini memiliki ekstensi .scss .
Sintaks kedua dan yang lebih tua , yang dikenal sebagai sintaks indentasi (atau kadang-kadang hanya "Sass"), menyediakan cara yang lebih singkat untuk menulis CSS. Ini menggunakan lekukan daripada tanda kurung untuk menunjukkan bersarang penyeleksi, dan baris baru daripada titik koma untuk memisahkan properti. File yang menggunakan sintaks ini memiliki ekstensi .sass .
Namun, semua ini hanya berfungsi dengan pre-compiler Sass yang pada akhirnya menciptakan CSS. Ini bukan ekstensi ke standar CSS itu sendiri.
scss
dan sass
lebih dari sekedar preferensi pribadi hari ini. scss
jauh lebih umum - yang digunakan dalam kebanyakan kerangka CSS populer seperti Bootstrap
, Foundation
, Materialize
dll kerangka UI utama mendukung scss
lebih sass
secara default - sudut, Bereaksi, Vue. Setiap tutorial atau demo umumnya akan menggunakan scss
misalnya create-react-app
facebook.github.io/create-react-app/docs/…
Saya salah satu pengembang yang membantu menciptakan Sass.
Perbedaannya adalah UI. Di bawah eksterior tekstual mereka identik. Inilah sebabnya mengapa file sass dan scss dapat saling mengimpor. Sebenarnya, Sass memiliki empat parser sintaksis: scss, sass, CSS, dan kurang. Semua ini mengonversi sintaks yang berbeda menjadi Pohon Sintaks Abstrak yang diproses lebih lanjut menjadi output CSS atau bahkan ke salah satu format lain melalui alat sass-convert.
Gunakan sintaks yang paling Anda sukai, keduanya didukung penuh dan Anda dapat mengubahnya di antara mereka nanti jika Anda berubah pikiran.
File Sass .sass
secara visual berbeda dari .scss
file, mis
$color: red
=my-border($color)
border: 1px solid $color
body
background: $color
+my-border(green)
$color: red;
@mixin my-border($color) {
border: 1px solid $color;
}
body {
background: $color;
@include my-border(green);
}
Setiap dokumen CSS yang valid dapat dikonversi ke Sassy CSS (SCSS) hanya dengan mengubah ekstensi dari .css
menjadi .scss
.
.scss
ke .css
sama .css
ke .scss
?
.css
hanya valid .scss
. Segera setelah Anda menambahkan kode spesifik scss, mengubah kembali nama file akan berakhir sebagai file css yang tidak valid. css
adalah persegi, dan scss
adalah persegi panjang. Semua kotak adalah persegi panjang, tetapi tidak semua persegi panjang adalah kotak.
Sass ( StyleSheets Awesome Sintaksis ) memiliki dua sintaks:
Jadi keduanya adalah bagian dari preprosesor Sass dengan dua kemungkinan sintaks yang berbeda.
Perbedaan paling penting antara SCSS dan Sass asli :
SCSS :
Sintaksnya mirip dengan CSS (sedemikian rupa sehingga setiap CSS3 valid yang teratur juga valid SCSS , tetapi hubungan ke arah lain jelas tidak terjadi)
Menggunakan kawat gigi {}
;
:
@mixin
arahan@include
arahanSass Asli :
=
alih-alih:
=
tanda+
tandaBeberapa lebih suka Sass , sintaksis aslinya - sementara yang lain lebih suka SCSS . Either way, tetapi perlu dicatat bahwa sintaks indentasi Sass belum dan tidak akan pernah ditinggalkan .
Konversi dengan sass-convert :
# Convert Sass to SCSS
$ sass-convert style.sass style.scss
# Convert SCSS to Sass
$ sass-convert style.scss style.sass
Sintaksnya berbeda, dan itulah pro utama (atau kontra, tergantung pada perspektif Anda).
Saya akan mencoba untuk tidak mengulangi banyak dari apa yang dikatakan orang lain, Anda dapat dengan mudah google itu tetapi sebaliknya, saya ingin mengatakan beberapa hal dari pengalaman saya menggunakan keduanya, kadang-kadang bahkan dalam proyek yang sama.
SASS pro
.sass
jauh lebih mudah 'dan dapat dibaca daripada di .scss
(subjektif).Kontra SASS
body color: red
seperti yang Anda bisa di .scssbody {color: red}
.scss
file (bersama dengan .sass
file) di proyek Anda atau mengubahnya menjadi .sass
.Selain ini - mereka melakukan pekerjaan yang sama.
Sekarang, apa yang saya suka lakukan adalah menulis mixin dan variabel dalam .sass
dan kode yang benar-benar akan dikompilasi ke dalam CSS .scss
jika memungkinkan (yaitu Visual studio tidak memiliki dukungan untuk .sass
tetapi ketika saya bekerja pada proyek Rails saya biasanya menggabungkan dua dari mereka, tidak dalam satu file ofc).
Akhir-akhir ini, saya mempertimbangkan untuk memberi Stylus kesempatan (untuk preprocessor CSS penuh waktu) karena memungkinkan Anda untuk menggabungkan dua sintaksis dalam satu file (di antara beberapa fitur lainnya). Itu mungkin bukan arah yang baik untuk diambil tim tetapi ketika Anda mempertahankannya sendiri - tidak apa-apa. Stylus sebenarnya paling fleksibel ketika sintaksisnya dipertanyakan.
Dan akhirnya mixin untuk .scss
vs .sass
perbandingan sintaks:
// SCSS
@mixin cover {
$color: red;
@for $i from 1 through 5 {
&.bg-cover#{$i} { background-color: adjust-hue($color, 15deg * $i) }
}
}
.wrapper { @include cover }
// SASS
=cover
$color: red
@for $i from 1 through 5
&.bg-cover#{$i}
background-color: adjust-hue($color, 15deg * $i)
.wrapper
+cover
Dari beranda bahasa
Sass memiliki dua sintaksis. Sintaks utama baru (pada Sass 3) dikenal sebagai "SCSS" (untuk "Sassy CSS") , dan merupakan superset dari sintaks CSS3. Ini berarti bahwa setiap stylesheet CSS3 yang valid juga SCSS yang valid. File SCSS menggunakan ekstensi .scss.
Sintaks kedua, yang lebih tua dikenal sebagai sintaks indentasi (atau hanya "Sass"). Terinspirasi oleh kesederhanaan Haml, ini dimaksudkan untuk orang yang lebih suka keringkasan daripada kesamaan dengan CSS. Alih-alih tanda kurung dan titik koma, ia menggunakan lekukan garis untuk menentukan blok. Meskipun bukan lagi sintaksis utama, sintaks yang terindentasi akan terus didukung. File dalam sintaks indentasi menggunakan ekstensi .sass.
SASS adalah bahasa yang ditafsirkan yang mengeluarkan CSS. Struktur Sass terlihat seperti CSS (jarak jauh), tetapi menurut saya deskripsi itu agak menyesatkan; itu bukan pengganti CSS, atau ekstensi. Ini adalah interpreter yang memuntahkan CSS pada akhirnya, jadi Sass masih memiliki keterbatasan CSS normal, tetapi menutupi mereka dengan kode sederhana.
Perbedaan dasarnya adalah sintaksisnya. Sementara SASS memiliki sintaks yang longgar dengan spasi putih dan tanpa titik koma, SCSS lebih menyerupai CSS.
SASS adalah singkatan dari StyleSheets yang Luar Biasa Secara Sintaksis. Ini adalah perpanjangan dari CSS yang menambah kekuatan dan keanggunan ke bahasa dasar. SASS baru bernama SCSS dengan beberapa pengejaran, tetapi yang lama SASS juga ada. Sebelum Anda menggunakan SCSS atau SASS, silakan lihat perbedaan di bawah ini.
Contoh beberapa sintaks SCSS dan SASS:
SCSS
$font-stack: Helvetica, sans-serif;
$primary-color: #333;
body {
font: 100% $font-stack;
color: $primary-color;
}
//Mixins
@mixin transform($property) {
-webkit-transform: $property;
-ms-transform: $property;
transform: $property;
}
.box { @include transform(rotate(30deg)); }
KELANCANGAN
$font-stack: Helvetica, sans-serif
$primary-color: #333
body
font: 100% $font-stack
color: $primary-color
//Mixins
=transform($property)
-webkit-transform: $property
-ms-transform: $property
transform: $property
.box
+transform(rotate(30deg))
Output CSS setelah Kompilasi (Sama untuk Keduanya)
body {
font: 100% Helvetica, sans-serif;
color: #333;
}
//Mixins
.box {
-webkit-transform: rotate(30deg);
-ms-transform: rotate(30deg);
transform: rotate(30deg);
}
Untuk panduan lebih lanjut, Anda dapat melihat situs web resmi .
Sass adalah yang pertama, dan sintaksinya agak berbeda. Misalnya, termasuk mixin:
Sass: +mixinname()
Scss: @include mixinname()
Sass mengabaikan tanda kurung keriting dan titik koma dan berbaring di atas sarang, yang menurut saya lebih bermanfaat.
Perbedaan antara artikel SASS dan SCSS menjelaskan perbedaan dalam detail. Jangan bingung dengan opsi SASS dan SCSS, meskipun saya juga awalnya, .scss adalah Sassy CSS dan merupakan generasi berikutnya dari .sass.
Jika itu tidak masuk akal, Anda dapat melihat perbedaan dalam kode di bawah ini.
/* SCSS */
$blue: #3bbfce;
$margin: 16px;
.content-navigation {
border-color: $blue;
color: darken($blue, 9%);
}
.border {
padding: $margin / 2; margin: $margin / 2; border-color: $blue;
}
Dalam kode di atas kita gunakan; untuk memisahkan deklarasi. Saya bahkan telah menambahkan semua deklarasi untuk .border ke satu baris untuk menggambarkan hal ini lebih lanjut. Sebaliknya, kode SASS di bawah ini harus pada baris yang berbeda dengan indentasi dan tidak ada penggunaan;
/* SASS */
$blue: #3bbfce
$margin: 16px
.content-navigation
border-color: $blue
color: darken($blue, 9%)
.border
padding: $margin / 2
margin: $margin / 2
border-color: $blue
Anda dapat melihat dari CSS di bawah ini bahwa gaya SCSS jauh lebih mirip dengan CSS biasa daripada pendekatan SASS yang lebih lama.
/* CSS */
.content-navigation {
border-color: #3bbfce;
color: #2b9eab;
}
.border {
padding: 8px;
margin: 8px;
border-color: #3bbfce;
}
Saya pikir sebagian besar waktu akhir-akhir ini jika seseorang menyebutkan bahwa mereka bekerja dengan Sass mereka merujuk pada penulisan dalam .scss daripada cara tradisional .sass.
Asli sass
adalah sintaks mirip ruby, mirip dengan ruby, jade dll ...
Dalam sintaksis tersebut, kami tidak menggunakan {}
, sebaliknya kami menggunakan spasi putih, juga tidak menggunakan ;
...
Dalam scss
sintaksis lebih seperti CSS
, tetapi dengan mendapatkan lebih banyak opsi seperti: bersarang, mendeklarasikan, dll, mirip dengan less
dan pra-pemrosesan lainnya CSS
...
Mereka pada dasarnya melakukan hal yang sama, tapi aku meletakkan beberapa baris masing-masing untuk melihat perbedaan sintaks, lihat {}
, ;
dan spaces
:
KELANCANGAN:
$width: 100px
$color: green
div
width: $width
background-color: $color
SCSS:
$width: 100px;
$color: green;
div {
width: $width;
background-color: $color;
}
Jawaban ringkas:
SCSS mengacu pada sintaks utama yang didukung oleh pra-prosesor Sass CSS .
.scss
mewakili sintaks standar yang didukung oleh Sass. SCSS adalah superset dari CSS..sass
mewakili sintaks "lama" yang didukung oleh Sass yang berasal dari dunia Ruby.SASS adalah Style Style Sintaks yang Menakjubkan dan merupakan perpanjangan dari CSS yang menyediakan fitur aturan bertingkat, pewarisan, Mixins sedangkan SCSS adalah Sassy Cascaded Style Sheets yang mirip dengan CSS dan mengisi celah dan ketidaksesuaian antara CSS dan SASS. Itu dilisensikan di bawah lisensi MIT. Artikel ini memiliki lebih banyak tentang perbedaan: https://www.educba.com/sass-vs-scss/