我正在尝试使用Scss中的两个自定义实用程序函数来优化与CSS相关的计算。
EMs的一个:
@function _em($wanted, $inherited) {
@return ($wanted / $inherited) + 'em';
}
......和另一个百分比:
@function _pc($wanted, $parent) {
@return (($wanted / $parent) * 100) + '%';
}
...然后将它们称为内联:
body {
margin: _pc(40,1024);
font-size: _em(20,16);
line-height: _em(26,20);
}
这些都没有回归预期 Nem
要么 N%
但是,字符串。 (我认为这是我的字符串连接 - 即在计算结束时粘合单位声明 - 但我不确定。)
任何人都可以解释我做错了什么吗?
实际上,你的问题是mixin的名字。我自己刚刚发现了这个,但显然你不能用下划线开始混音。
这有效: http://jsfiddle.net/B94p3/
@function -em($wanted, $inherited) {
@return ($wanted / $inherited) + 'em';
}
@function -pc($wanted, $parent) {
@return (($wanted / $parent) * 100) + '%';
}
p {
font-size: -em(40,16);
}
实际上,你的问题是mixin的名字。我自己刚刚发现了这个,但显然你不能用下划线开始混音。
这有效: http://jsfiddle.net/B94p3/
@function -em($wanted, $inherited) {
@return ($wanted / $inherited) + 'em';
}
@function -pc($wanted, $parent) {
@return (($wanted / $parent) * 100) + '%';
}
p {
font-size: -em(40,16);
}
同样,我写了这个函数来转换单位 px
至 rem
。
你可以相应地修改。
$is-pixel: true;
$base-pixel: 16;
@function unit($value) {
@if $is-pixel == true {
$value: #{$value}px;
} @else {
$value: #{$value/$base-pixel}rem;
}
@return $value;
}
现在,可以使用如下
.my-class {
width: unit(60);
height: unit(50);
}