使用 mixin 导入 scss 文件的内容

Posted

技术标签:

【中文标题】使用 mixin 导入 scss 文件的内容【英文标题】:import content of scss file using mixin 【发布时间】:2022-01-16 00:02:18 【问题描述】:

有没有办法使用mixinsscss 文件的内容导入另一个scss 文件? 像这样的:

// media.scss
@mixin media($width, $url) 
  @media (min-width:$width) 
    @import url($url);
  
;

@mixin small($url) 
  @include media(576, $url);
;

//main.scss
@import '../../styles/media.scss';
@include small('./styles/small.scss');
.menu 
  height: 4rem;
  border-bottom-left-radius: 10px;
  background-color: #202020;

//small.scss
.menu 
  background-color: aqua;

【问题讨论】:

【参考方案1】:

为了在 SCSS 中使用@mixin,您必须在您希望包含这些更改或样式规则的类选择器中使用@include

例如,

 .menu 
   height: 4rem;
   border-bottom-left-radius: 10px;
   background-color: #202020;
   @include small($url)
   // @include (name of mixin)(arguments)  

.menu 
  background-color: aqua;
  @include small($url)
 

这取决于你想使用 mixin 的类选择器。这 在这种情况下,$url 将是实际值。

通常,最好创建一个单独的部分文件,其中将包含您创建的所有混音。这些在开头用下划线命名。 例如,部分_media.scss 文件可以在main.scss 文件中导入为@import './media.scss';@import '../../styles/media.scss';,具体取决于部分文件的相对路径。

【讨论】:

以上是关于使用 mixin 导入 scss 文件的内容的主要内容,如果未能解决你的问题,请参考以下文章

相对于根目录的 SCSS 导入

使用react + webpack时如何使用绝对路径导入自定义scss?

找不到要导入的文件

scss Flexbox SASS Mixin:3。证明内容

如何避免 SASS 变量的多个 @imports?

如何使用环境变量在 Nuxt 中动态导入 SCSS 样式表