Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

190
Visualizações
¿Puedo usar las propiedades de Sass como argumentos para mi función?

Parece que estoy intentando usar las propiedades de SASS como argumentos para mi función, Y NO ESTÁ FUNCIONANDO BIEN .

¿Hay alguna manera en que pueda hacer esto, o hay una mejor alternativa a lo que estoy tratando de lograr?

Básicamente, quiero cambiar los valores de las variables que envío a mi función en función de mi consulta de medios de ancho de pantalla.

Corrientemente:

 @function myFunc($arg1, $arg2) { @debug "arg1 = #{$arg1} / arg2 = #{$arg2}"; @return #{$arg1} * #{$arg2}; } .my-class { // Mobile first values --var1: 10px; --var2: 20px; @media (--from-tablet-size) { --var1: 20px; --var2: 40px; } width: myFunc(--var1, ---var2); }

La salida de depuración en realidad muestra que los valores pasados a la función son solo las cadenas --var1 y --var2 en lugar de sus respectivos valores de propiedad...

 DEBUG: arg1 = --var1 / arg2 = --var2

¿Hay algo que pueda hacer para solucionar esto? ¿Pasando las propiedades como intento aquí, o una mejor alternativa?

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Hay algunos problemas con su código:

  1. Para leer variables CSS se necesita var() , por ejemplo var(--var1) . Más información: https://developer.mozilla.org/en-US/docs/Web/CSS/Using_CSS_custom_properties
  2. Las variables CSS no se pueden usar con cálculos o funciones SASS.
  3. Dos números con unidades no se pueden multiplicar en SASS, por ejemplo. ¿Qué se esperaba de 10px * 20px ? Debería ser algo así como 10 * 20px .

Primera sugerencia: usar variables SASS

 @function myFunc($arg1, $arg2) { @debug "arg1 = #{$arg1} / arg2 = #{$arg2}"; @return $arg1 * $arg2; } .my-class { // Mobile first values $var1: 10; $var2: 20px; width: myFunc($var1, -$var2); @media (--from-tablet-size) { $var1: 20; $var2: 40px; width: myFunc($var1, -$var2); } }

Segunda sugerencia: usar variables CSS

 .my-class { // Mobile first values --var1: 10; --var2: 20px; @media (--from-tablet-size) { --var1: 20; --var2: 40px; } width: calc(var(--var1) * -1 * var(--var2)); }
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda