Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Css 如何组合2个SASS函数,因为它们只需使用不同的计算即可完成几乎相同的操作?_Css_Sass - Fatal编程技术网

Css 如何组合2个SASS函数,因为它们只需使用不同的计算即可完成几乎相同的操作?

Css 如何组合2个SASS函数,因为它们只需使用不同的计算即可完成几乎相同的操作?,css,sass,Css,Sass,我想知道是否有人可以建议我如何组合下面的SASS功能,基本上它们做相同的事情,但一个是专门用于IE的,所以有2个是一种浪费。我尝试添加if..else语句,并添加了一个附加参数,如if$property=='ie',但没有成功 职能: // To use width, margin, padding... @function percentageWidth( $elementWidth, $containerWidth ){ @return $elementWidth/$containerW

我想知道是否有人可以建议我如何组合下面的SASS功能,基本上它们做相同的事情,但一个是专门用于IE的,所以有2个是一种浪费。我尝试添加if..else语句,并添加了一个附加参数,如if$property=='ie',但没有成功

职能:

// To use width, margin, padding...
@function percentageWidth( $elementWidth, $containerWidth ){
  @return $elementWidth/$containerWidth * 100%;
}

// To use *width ie6/7 workarounds
@function iePercentageWidth( $elementWidth, $containerWidth ){
  @return $elementWidth/$containerWidth - 0.5/$containerWidth * 100%;
}
当前CSS:

width: percentageWidth( 214,945 );
*width: iePercentageWidth( 214,945 );
我还想在以下情况下使用此功能:

margin: percentageWidth( 23,945 );
这是你需要的吗

@mixin twoWidths($x, $y){
  width: percentageWidth($x, $y);
  *width: iePercentageWidth($x, $y);
}
然后在样式表中,您可以这样称呼它:

@include twoWidths(500,700);

下面是一个可用于创建一对属性的常规mixin:

@mixin ieprop($name, $elementWidth, $containerWidth) {
   #{$name}: percentageWidth($elementWidth, $containerWidth);
   *#{$name}: iePercentageWidth($elementWidth, $containerWidth);
}
将属性名称作为第一个参数传递,如下所示:

.cls {
  @include ieprop('width', 214, 945);
  @include ieprop('margin', 23, 945);
}

为什么不使用一个mixin来计算并给您一个余量&*余量?我如何使这个mixin适用于所有属性和计算?