Rumah > Soal Jawab > teks badan
Saya sedang melaksanakan projek dan daripada apa yang saya faham, @use
只会将代码导入到我们使用@use
berada dalam lembaran gaya, bukan mana-mana lembaran gaya lain.
dokumentasi sass:
@gunakan ahli yang dimuatkan (pembolehubah, fungsi dan campuran) hanya boleh dilihat dalam lembaran gaya yang memuatkannya. Jika lembaran gaya lain ingin mengaksesnya, mereka perlu menulis peraturan @use mereka sendiri.
Jadi saya mempunyai sesuatu yang dipanggil _b.scss
的文件,它是我编译为css的sass的主文件,然后我有一个名为a.scss
的文件,我在其中通过@use
导入了_b.scss
,然后,我有一个名为project.scss
的文件,在其中我导入了a.scss
,所以根据这个层次结构,_b.scss
不应该在project.scss
中可访问,但是当我将project.scss
编译为css时,在我的css文件中,我编译了来自_b.scss
的scss代码(然而,如果我在project.scss
中写入像@debug map-get($colors."red")
seperti ini dan ia menimbulkan ralat), jadi mengapa ini berlaku?
PS: Saya menggunakan gulp
untuk menyusun, membersihkan dan memantau scss dan css saya.
//文件层次结构 index.html gulpfile.js a.scss _b.scss project project.scss css project.css
//index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="css/project.css"> <title>Document</title> </head> <body> <div class="bg-red">hey</div> <div class="bg-purple">hey</div> </body> </html>
//_b.scss $colors:( "red":red, "blue":blue, "green":green, "yellow":yellow, "brown":brown, "purple":purple ); @each $key,$val in $colors{ .bg-#{$key}{ background: $val; } }
//a.scss @use "b";
//project.scss @use "../a";
//project.css .bg-red { background: red; } .bg-purple { background: purple; }
//gulpfile.js const { src, dest, watch, series } = require('gulp') const sass = require('gulp-sass')(require('sass')) const purgecss = require('gulp-purgecss') function buildStyles() { return src('project/*.scss') .pipe(sass({})) .pipe(purgecss({ content: ['*.html'] })) .pipe(dest('css')) } function watchTask() { watch(['project/*.scss', '*.html'], buildStyles) } exports.default = series(buildStyles, watchTask)
P粉3164230892023-09-16 16:30:48
Berdasarkan petikan anda sendiri (penekanan saya):
Sila ambil perhatian bahawa ini tidak termasuk peraturan gaya. Menurut docs, peraturan gaya masih "dimuatkan" ke dalam lembaran gaya yang dijana:
Oleh itu, @use
digunakan untuk mengasingkan ahli (pembolehubah, fungsi dan campuran) yang boleh dilihat semasa mengeluarkan peraturan gaya.