Saya mencoba menggunakan interpolasi string pada variabel saya untuk mereferensikan variabel lain:
// Set up variable and mixin
$foo-baz: 20px;
@mixin do-this($bar) {
width: $foo-#{$bar};
}
// Use mixin by passing 'baz' string as a param for use $foo-baz variable in the mixin
@include do-this('baz');
Tetapi ketika saya melakukan ini, saya mendapatkan kesalahan berikut:
Variabel tidak ditentukan: "$ foo-".
Apakah Sass mendukung variabel variabel gaya PHP?
Ini sebenarnya dapat dilakukan dengan menggunakan peta SASS daripada variabel. Berikut contoh singkatnya:
Merujuk secara dinamis:
Dihasilkan sebagai:
Membuat secara dinamis:
Dihasilkan sebagai:
sumber
Kapan pun saya perlu menggunakan nilai bersyarat, saya mengandalkan fungsi. Berikut contoh sederhananya.
sumber
@include do-this($foo);
? ... bagaimanapun ini akan masuk akal, jika fungsinya benar-benar melakukan sesuatu, tetapi hanya lewat ...Berikut opsi lain jika Anda bekerja dengan rel, dan mungkin dalam keadaan lain.
Jika Anda menambahkan .erb di akhir ekstensi file, Rails akan memproses erb pada file tersebut sebelum mengirimkannya ke juru bahasa SASS. Ini memberi Anda kesempatan untuk melakukan apa yang Anda inginkan di Ruby.
Misalnya: (File: foo.css.scss.erb)
Hasil di scss berikut:
Yang mana, dari kasar, menghasilkan css berikut:
sumber
Saya menemukan kebutuhan untuk mereferensikan warna secara dinamis baru-baru ini.
Saya memiliki file _colours.scss untuk setiap proyek, di mana saya mendefinisikan semua warna saya sekali dan mereferensikannya sebagai variabel.
Dalam file _forms.scss saya, saya ingin mengatur gaya tombol untuk setiap warna yang tersedia. Biasanya tugas yang membosankan. Ini membantu saya menghindari keharusan menulis kode yang sama untuk setiap warna yang berbeda.
Satu-satunya downside adalah Anda harus membuat daftar setiap nama warna dan nilai sebelum menulis css yang sebenarnya.
sumber
Untuk membuat variabel dinamis tidak dimungkinkan di SASS seperti sekarang, karena Anda akan menambahkan / menghubungkan var lain yang perlu diurai sekali saat Anda menjalankan perintah sass.
Segera setelah perintah dijalankan, itu akan memunculkan kesalahan untuk CSS tidak valid, karena semua variabel yang Anda deklarasikan akan mengikuti pengangkatan.
Setelah dijalankan, Anda tidak dapat mendeklarasikan variabel lagi dengan cepat
Untuk mengetahui bahwa saya telah memahami ini, mohon nyatakan jika yang berikut ini benar:
Anda ingin mendeklarasikan variabel di mana bagian berikutnya (kata) dinamis
sesuatu seperti
$list: 100 200 300; @each $n in $list { $font-$n: normal $n 12px/1 Arial; } // should result in something like $font-100: normal 100 12px/1 Arial; $font-200: normal 200 12px/1 Arial; $font-300: normal 300 12px/1 Arial; // So that we can use it as follows when needed .span { font: $font-200; p { font: $font-100 } }
Jika ini yang Anda inginkan, saya khawatir sekarang, ini tidak diperbolehkan
sumber