scss 用于REM和PX的SASS Mixin

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了scss 用于REM和PX的SASS Mixin相关的知识,希望对你有一定的参考价值。

/**
 * Parse an Integer in scss
 * @param   {String}  $n
 * @return  {Integer}
 */
@function parse-int($n) {
	@return $n / ($n * 0 + 1);
}

/**
 * Mixin for calculating Rems with Px fallback. Thanks to hugogiraudel
 * @param   {String}  $property  the property ex: font-size
 * @param   {Object}  $values    the values (can be single or multiple) ex: 1rem 1rem 0
 */
@mixin rem($property, $values) {
	$px : ();
	$rem: ();
	@each $value in $values {
		@if $value == 0 or type-of($value) != "number" {
			$px : append($px , $value);
			$rem: append($rem, $value);
		}
		@else {
			$unit: unit($value);
			$val: parse-int($value);
			@if $unit == "px" {
				$px : append($px,  $value);
				$rem: append($rem, ($val / 10 + rem));
			}
			@if $unit == "rem" {
				$px : append($px,  ($val * 10 + px));
				$rem: append($rem, $value);
			}
		}
	}
	@if $px == $rem { 
		#{$property}: $px;
	} @else {
		#{$property}: $px;
		#{$property}: $rem; 
	}
}

以上是关于scss 用于REM和PX的SASS Mixin的主要内容,如果未能解决你的问题,请参考以下文章

scss 基于行高的基线网格SASS mixin,支持rem和px。显示在页面内容上方。按W切换

scss Sass mixin用于设置默认rem字体大小

scss 像素到REM sass mixin

scss SASS:REM Fallback Mixin

scss SASS,SCSS,mixin:PX到EM的转换

sass @mixin 这样使用为啥出不来效果??求大神帮忙