从sass函数调用sass mixin

从sass函数调用sass mixin,sass,Sass,我有一个生成选择器名称的sass mixin: @mixin rocks($name){ #{$name}-rocks { @content; } } 通过调用mixin调用: @include rocks(dave){ color: red; } 我想为我创建一个调用此mixin的自定义函数,将语法缩短为: rocks(dave){ color: red; } 有可能吗。在选择器之外调用sass@函数?二,。从中调用mixin?大致如下: @function ro

我有一个生成选择器名称的sass mixin:

@mixin rocks($name){
  #{$name}-rocks {
    @content;
  }
}
通过调用mixin调用:

@include rocks(dave){
  color: red;
}
我想为我创建一个调用此mixin的自定义函数,将语法缩短为:

rocks(dave){
  color: red;
}
有可能吗。在选择器之外调用sass@函数?二,。从中调用mixin?大致如下:

@function rocks($name){
  @include @rocks($name)
}

如果可能的话,我更喜欢自定义sass函数而不是自定义ruby函数。谢谢

否和否。Sass中的函数只能返回值,不能用于创建CSS。这就是mixin的用途:创建mixin以调用其他mixin。

否。Sass中的函数只能返回值,不能用于创建CSS。这就是mixin的用途:创建mixin以调用其他mixin。

否。Sass中的函数只能返回值,不能用于创建CSS。这就是mixin的用途:创建mixin以调用其他mixin。

否。Sass中的函数只能返回值,不能用于创建CSS。这就是mixin的用途:创建mixin来调用其他mixin。

@DonaldDuck感谢您的反馈。就我个人而言,我认为没有必要通过mixin调用选择器,如果有人尝试这样做,它将通过使用这些mixin来解决

@function class($name) {
  @return $name;
}

@mixin className($classname) {
  .#{class($classname)} {
    @content;
  }
}

@mixin concatinate($classname2) {
  &.#{class($classname2)} {
    @content;
  }
}

@mixin parent($classname1) {
  .#{class($classname1)} & {
    @content;
  }
}

@mixin withparent($classname1) {
  @at-root .#{class($classname1)}#{&} {
    @content;
  }
}

@include className(red) {
  color: red;

  @include className(check) {
    color: green;

    @include concatinate(bcd) {
      color: green2;

      ul {
        li {
          color: red;

          & {
            color: blue;
          }

          @include withparent(colorwe) {
            display: none;
          }
        }
      }

      @include parent(efg) {
        color: green1;
      }
    }
  }


  @include className(blue) {
    color: blue;
  }
}
e、 g:


@DonaldDuck感谢您的反馈。就我个人而言,我认为没有必要通过mixin调用选择器,如果有人尝试这样做,它将通过使用这些mixin来解决

e、 g:


@DonaldDuck感谢您的反馈。就我个人而言,我认为没有必要通过mixin调用选择器,如果有人尝试这样做,它将通过使用这些mixin来解决

e、 g:


@DonaldDuck感谢您的反馈。就我个人而言,我认为没有必要通过mixin调用选择器,如果有人尝试这样做,它将通过使用这些mixin来解决

e、 g:


我知道用Ruby编写的自定义函数可以做到这一点,compass有一些类似“nest(…)”的函数。我知道用Ruby编写的自定义函数可以做到这一点,compass有一些类似“nest(…)”的函数。我知道用Ruby编写的自定义函数可以做到这一点,compass有一些类似“nest(…)”的函数。我知道用Ruby编写的自定义函数可以做到这一点,compass有一些类似“nest(…)”的函数。希望可以使用sass脚本函数。是的,您可以在sass V3中选择具有mixin和函数的选择器,而这段代码可能会回答问题,提供有关如何和/或为什么解决问题的附加上下文将提高答案的长期价值。@DonaldDuck感谢您的反馈;但我只让这个soln从mixins调用选择器名称;soyes您可以在sass V3中选择带有mixin和函数的选择器,而这段代码可能会回答这个问题,提供关于如何和/或为什么解决这个问题的额外上下文将提高答案的长期价值。@DonaldDuck感谢您的反馈;但我只让这个soln从mixins调用选择器名称;soyes您可以在sass V3中选择带有mixin和函数的选择器,而这段代码可能会回答这个问题,提供关于如何和/或为什么解决这个问题的额外上下文将提高答案的长期价值。@DonaldDuck感谢您的反馈;但我只让这个soln从mixins调用选择器名称;soyes您可以在sass V3中选择带有mixin和函数的选择器,而这段代码可能会回答这个问题,提供关于如何和/或为什么解决这个问题的额外上下文将提高答案的长期价值。@DonaldDuck感谢您的反馈;但我只让这个soln从mixins调用选择器名称;所以
//call a class
@include className(one) { 
  properties..
}//o/p    .one { properties..}
//add another class with existing one
@include className(one) {
  @include concatinate(two) {
    @include className(three) {
      properties...
    }
  }
}//o/p   .one.two .three { properties...}
//add parent to hierarchy
@include className(one) {
  @include parent(two) {
    properties..
  }
}//o/p .two .one { properties..}
//add class with top of the hierarchy
@include className(one) {
  @include className(two) {
    @include withparent(three) {
      properties...
    }
  }
} o/p  .one.three .two { properties..}