我有如下CSS函数:
width: min(calc(100vw - 51rem), calc(100vh - 2rem));
它在使用CSS文件时可以正常工作,但在SASS中就不行了。我该如何为SASS重写这个函数呢?
tag5nh1u1#
当使用SASS时,min()是SASS本身内的函数,因此您的语句在处理时不会进入CSS。有一个快速的解决方法,因为SASS区分大小写,而CSS不区分。只需将Min()中的“M”大写。Min()语句不会被识别为内部SASS min()函数,但可以在CSS中工作。
width: Min(calc(100vw - 51rem), calc(100vh - 2rem));
093gszye2#
你可以把min Package 在一个calc中,它的工作原理是:
min
calc
width: calc(min(calc(100vw - 51rem), calc(100vh - 2rem)));
在您的情况下,您甚至可以简化代码:
width: calc(min(100vw - 51rem, 100vh - 2rem));
vfh0ocws3#
您可以使用这些Sass函数来强制CSS函数。
@function css-function( $function, $values... ) { @return $function + unquote( '(' ) + $values + unquote( ')' ) ; } @function css-min( $values... ) { @return css-function( min, $values ); } @function css-max( $values... ) { @return css-function( max, $values ); } @function css-clamp( $values... ) { @return css-function( clamp, $values ); }
在组合使用Sass变量和CSS变量时,可能仍需要使用#{ }插值。用法:
$width-first: 40px; $width-second: 30px; .my-selector { width: css-min(#{$width-first}, #{$width-second}); }
编制日期:
.my-selector { width: min(40px, 30px); }
gcxthw6b4#
在Webpack Bundler中将node-sass替换为sass(dart-sass),此问题将消失。
4条答案
按热度按时间tag5nh1u1#
当使用SASS时,min()是SASS本身内的函数,因此您的语句在处理时不会进入CSS。有一个快速的解决方法,因为SASS区分大小写,而CSS不区分。只需将Min()中的“M”大写。Min()语句不会被识别为内部SASS min()函数,但可以在CSS中工作。
093gszye2#
你可以把
min
Package 在一个calc
中,它的工作原理是:在您的情况下,您甚至可以简化代码:
vfh0ocws3#
您可以使用这些Sass函数来强制CSS函数。
在组合使用Sass变量和CSS变量时,可能仍需要使用#{ }插值。
用法:
编制日期:
gcxthw6b4#
在Webpack Bundler中将node-sass替换为sass(dart-sass),此问题将消失。