è possibile rimuovere una proprietà CSS di un elemento usando JavaScript? ad esempio ho div.style.zoom = 1.2
, ora voglio rimuovere la proprietà zoom tramite JavaScript?
è possibile rimuovere una proprietà CSS di un elemento usando JavaScript? ad esempio ho div.style.zoom = 1.2
, ora voglio rimuovere la proprietà zoom tramite JavaScript?
Risposte:
Hai due opzioni:
OPZIONE 1:
È possibile utilizzare il metodo removeProperty . Rimuoverà uno stile da un elemento.
el.style.removeProperty('zoom');
OPZIONE 2:
Puoi impostarlo sul valore predefinito:
el.style.zoom = "";
Lo zoom effettivo sarà ora tutto quanto segue dalle definizioni impostate nei fogli di stile (tramite tag di collegamento e stile). Quindi questa sintassi modificherà solo lo stile locale di questo elemento.
removeProperty rimuoverà uno stile da un elemento.
Esempio:
div.style.removeProperty ( 'ingrandire');
Pagina della documentazione MDN:
CSSStyleDeclaration.removeProperty
È possibile utilizzare l'oggetto styleSheets:
document.styleSheets[0].cssRules[0].style.removeProperty("zoom");
Avvertenza n. 1: devi conoscere l'indice del tuo foglio di stile e l'indice della tua regola.
Avvertenza n. 2: questo oggetto è implementato in modo incoerente dai browser; ciò che funziona in uno potrebbe non funzionare negli altri.
CSSStyleRule.prototype.removeProperty
= (In realtà CSSStyleRule
non ha alcun metodo. = (
CSSStyleSheet.prototype.removeRule
Al salvataggio.
CSSStyleSheet.prototype.deleteRule
?
Puoi provare a trovare tutti gli elementi che hanno questa classe e impostare la proprietà "zoom" su "niente".
Se stai usando la libreria javascript jQuery, puoi farlo con $(".the_required_class").css("zoom","")
Modifica: rimossa questa affermazione in quanto si è rivelata non vera, come sottolineato in un commento e altre risposte, è davvero possibile dal 2010.
Falso: non esiste un modo generalmente noto per modificare i fogli di stile da JavaScript.
css
, no attr
, hai ragione.
Puoi anche farlo in jQuery dicendo $(selector).css("zoom", "")
Questo dovrebbe fare il trucco: impostare lo stile in linea su normale per lo zoom:
$ ('div'). attr ("style", "zoom: normal;");
in realtà, se conosci già la proprietà, questo lo farà ...
per esempio:
<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;
}
Nota che questo funziona solo per gli stili incorporati ... non per gli stili che hai specificato attraverso una classe o qualcosa del genere ...
Altra nota: potrebbe essere necessario sfuggire ad alcuni personaggi in quella dichiarazione di sostituzione, ma si ottiene l'idea.
Per modificare tutte le classi per un elemento:
document.getElementById("ElementID").className = "CssClass";
Per aggiungere una classe aggiuntiva a un elemento:
document.getElementById("ElementID").className += " CssClass";
Per verificare se una classe è già applicata a un elemento:
if ( document.getElementById("ElementID").className.match(/(?:^|\s)CssClass(?!\S)/) )