Estoy tratando de optimizar los cálculos relacionados con CSS utilizando dos funciones de utilidad personalizadas en Scss.Escribir una función Sass/Scss que devuelve una cadena
Uno de los ME:
@function _em($wanted, $inherited) {
@return ($wanted/$inherited) + 'em';
}
... y otra para porcentajes:
@function _pc($wanted, $parent) {
@return (($wanted/$parent) * 100) + '%';
}
... entonces llamarlos en línea:
body {
margin: _pc(40,1024);
font-size: _em(20,16);
line-height: _em(26,20);
}
Ninguno de ellos están regresando la cadena esperada Nem
o N%
, sin embargo. (creo que es mi concatenación de cadenas - es decir, pegando la unidad declarativa en el final del cálculo -. Pero no estoy seguro)
¿Alguien puede arrojar alguna luz sobre lo que estoy haciendo mal?
Gracias Ayman, aunque eso es algo molesto. Creo que iré con pc (x, y) y em (x, y) ya que los nombres de las funciones de prefijo con un menos podrían ser engañosos para otros desarrolladores. – markedup
Para referencia para cualquiera que quiera estos, pero sin salida de cadena, simplemente envuelva los retornos en sintaxis de interpolación SASS, por ejemplo: '@function -px-to-pc ($ wanted, $ parent) { @return # {(($ wanted/$ parent) * 100) + '%'}; } ' –
Gracias, Jasmine, esta es la mejor solución; de lo contrario, Sass parece eliminar el cálculo + la concatenación como una cadena literal entrecomillada como el valor de la regla CSS. – markedup