¿Es posible eliminar una propiedad CSS de un elemento usando JavaScript? Por ejemplo div.style.zoom = 1.2
, ahora quiero eliminar la propiedad de zoom a través de JavaScript.
¿Es posible eliminar una propiedad CSS de un elemento usando JavaScript? Por ejemplo div.style.zoom = 1.2
, ahora quiero eliminar la propiedad de zoom a través de JavaScript.
Respuestas:
Tienes dos opciones:
OPCIÓN 1:
Puede usar el método removeProperty . Eliminará un estilo de un elemento.
el.style.removeProperty('zoom');
OPCION 2:
Puede establecerlo en el valor predeterminado:
el.style.zoom = "";
El zoom efectivo ahora será lo que sigue de las definiciones establecidas en las hojas de estilo (a través de enlaces y etiquetas de estilo). Entonces, esta sintaxis solo modificará el estilo local de este elemento.
removeProperty eliminará un estilo de un elemento.
Ejemplo:
div.style.removeProperty ('zoom');
Página de documentación de MDN:
CSSStyleDeclaration.removeProperty
Puede usar el objeto styleSheets:
document.styleSheets[0].cssRules[0].style.removeProperty("zoom");
Advertencia # 1: debe conocer el índice de su hoja de estilo y el índice de su regla.
Advertencia # 2: los navegadores implementan este objeto de manera inconsistente; lo que funciona en uno puede no funcionar en los demás.
CSSStyleRule.prototype.removeProperty
= (De hecho CSSStyleRule
, no tiene ningún método. = (
CSSStyleSheet.prototype.removeRule
al rescate.
CSSStyleSheet.prototype.deleteRule
?
Puede intentar encontrar todos los elementos que tengan esta clase y establecer la propiedad "zoom" en "nada".
Si está utilizando la biblioteca jQuery javascript, puede hacerlo con $(".the_required_class").css("zoom","")
Editar: se eliminó esta afirmación porque resultó no ser cierta, como se señaló en un comentario y otras respuestas, de hecho, ha sido posible desde 2010.
Falso: no existe una forma generalmente conocida de modificar las hojas de estilo desde JavaScript.
css
, no attr
, tienes razón.
También puedes hacer esto en jQuery diciendo $(selector).css("zoom", "")
Esto debería ser el truco: establecer el estilo en línea en normal para el zoom:
$ ('div'). attr ("estilo", "zoom: normal;");
en realidad, si ya conoces la propiedad, esto lo hará ...
por ejemplo:
<a href="test.html" style="color:white;zoom:1.2" id="MyLink"></a>
var txt = "";
txt = getStyle(InterTabLink);
setStyle(InterTabLink, txt.replace("zoom\:1\.2\;","");
function setStyle(element, styleText){
if(element.style.setAttribute)
element.style.setAttribute("cssText", styleText );
else
element.setAttribute("style", styleText );
}
/* getStyle function */
function getStyle(element){
var styleText = element.getAttribute('style');
if(styleText == null)
return "";
if (typeof styleText == 'string') // !IE
return styleText;
else // IE
return styleText.cssText;
}
Tenga en cuenta que esto solo funciona para estilos en línea ... no para estilos que ha especificado a través de una clase o algo así ...
Otra nota: puede que tenga que escapar de algunos caracteres en esa declaración de reemplazo, pero se entiende la idea.
Para cambiar todas las clases para un elemento:
document.getElementById("ElementID").className = "CssClass";
Para agregar una clase adicional a un elemento:
document.getElementById("ElementID").className += " CssClass";
Para verificar si una clase ya está aplicada a un elemento:
if ( document.getElementById("ElementID").className.match(/(?:^|\s)CssClass(?!\S)/) )