es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cambiando SASS con Javascript

¿Es posible que javascript cambie las propiedades SASS?
Ya he intentado usar javascript para manipular el DOM, pero aún no funciona.

Ejemplo:

HTML:

SASS:

#thing1
    display: none
    width: 40vw
    height: 40vh;
    background-color: red

Javascript:

document.getElementById("thing1").style.display = "block"

¿Alguien puede mostrarme cómo hacer que esto funcione?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    No, es posible que JavaScript cambie directamente las propiedades de SASS. SASS es un preprocesador que se compila a CSS, que luego se aplica a los elementos HTML. JavaScript solo tiene acceso a las propiedades CSS finales aplicadas al DOM, no a las variables o mixins originales de SASS utilizados para generar ese CSS.

    En el ejemplo proporcionado, el problema está en el código SASS, que establece la propiedad de visualización inicial en “none”. Incluso si JavaScript cambia la visualización a “block”, el elemento aún no será visible porque tiene un ancho y alto de 0. Para mostrar correctamente el elemento, ajusta el código SASS para establecer inicialmente la visualización en “block” o eliminarla por completo:

    #thing1
        width: 40vw
        height: 40vh;
        background-color: red
    

    Alternativamente, puedes usar JavaScript para agregar una clase CSS que anule las propiedades de SASS:

    SASS:

    #thing1
        display: none
        width: 40vw
        height: 40vh;
        background-color: red
    

    CSS:

    .show {
        display: block !important;
    }
    

    JavaScript:

    document.getElementById("thing1").classList.add("show");
    

Comments are closed.