我希望能够做到以下几点:
height: 25% - 5px;
Run Code Online (Sandbox Code Playgroud)
显然,当我这样做时,我得到错误:
Incompatible units: 'px' and '%'.
Run Code Online (Sandbox Code Playgroud)
chr*_*lez 204
Sass无法对无法从一个单元转换为下一个单元的值执行算术运算.Sass无法确切地知道"100%"在像素或任何其他单位方面有多宽.这只是浏览器知道的东西.
你需要calc()改用. 检查浏览器兼容性我可以使用...
.foo {
height: -webkit-calc(25% - 5px);
height: -moz-calc(25% - 5px);
height: calc(25% - 5px);
}
Run Code Online (Sandbox Code Playgroud)
如果您的值在变量中,您可能需要使用插值将它们转换为字符串(否则Sass只是尝试执行算术):
$a: 25%;
$b: 5px;
.foo {
width: -webkit-calc(#{$a} - #{$b});
width: -moz-calc(#{$a} - #{$b});
width: calc(#{$a} - #{$b});
}
Run Code Online (Sandbox Code Playgroud)
san*_*rom 19
calcSCSS [编译时]和CSS [运行时]都有一个函数.你可能会调用前者而不是后者.
由于显而易见的原因,混合单元不能在编译时运行,但会在运行时运行.
您可以使用unquoteSCSS函数强制后者.
.selector { height: unquote("-webkit-calc(100% - 40px)"); }
Run Code Online (Sandbox Code Playgroud)
小智 13
$var:25%;
$foo:5px;
.selector {
height:unquote("calc( #{$var} - #{$foo} )");
}
Run Code Online (Sandbox Code Playgroud)
如果你知道容器的宽度,你可以这样做:
#container
width: #{200}px
#element
width: #{(0.25 * 200) - 5}px
Run Code Online (Sandbox Code Playgroud)
我知道在很多情况下#container可能有相对宽度.然后这不起作用.
| 归档时间: |
|
| 查看次数: |
112829 次 |
| 最近记录: |