Estoy tratando de averiguar cómo, después de cambiar las propiedades de estilo con javascript, puedo volver al valor en la hoja de estilos (incluidas las unidades).Cómo devolver una propiedad de estilo de conjunto de Javascript a CSS predeterminado
En el ejemplo siguiente, me gustaría que la salida lea 100px
(el valor en el CSS), en lugar de 10px
, como getComputedStyle
da.
También mantendría el dummy div en top:25px
, por lo que eliminar la propiedad style
no funcionará.
Lo mejor que tengo es clonar el nodo y leer la altura y el almacenamiento en una propiedad (http://jsfiddle.net/daneastwell/zHMvh/4/), pero esto realmente no obtiene el valor predeterminado de css del navegador (especialmente si está establecido en em
s).
http://jsfiddle.net/daneastwell/zHMvh/1/
<style>
#elem-container{
position: absolute;
left: 100px;
top: 200px;
height: 100px;
}
</style>
<div id="elem-container">dummy</div>
<div id="output"></div>
<script>
function getTheStyle(){
var elem = document.getElementById("elem-container");
elem.style.left = "10px";
elem.style.top = "25px";
var theCSSprop = window.getComputedStyle(elem,null).getPropertyValue("left");
document.getElementById("output").innerHTML = theCSSprop;
}
getTheStyle();
</script>
¿Por qué no puedes usar las clases de CSS? Luego, simplemente los agregará/eliminará en lugar de cambiar las propiedades de estilo individuales. –
Además, en realidad, el valor actual para _is_ 10px izquierdo porque getComputerStyle devuelve el ... estilo calculado de ese elemento (incluido el atributo de estilo) y no solo las reglas especificadas en el CSS. Nota: tenga en cuenta que getComputedStyle no es compatible con versiones anteriores de IE. –
Estoy realizando una tarea para cambiar el tamaño, por lo que se calcula el valor 'izquierdo', por lo que una clase no ayudaría, disculpe por no haber sido más específico. –