é possível remover uma propriedade CSS de um elemento usando JavaScript? por exemplo, eu tenho div.style.zoom = 1.2
, agora eu quero remover a propriedade zoom através de JavaScript?
é possível remover uma propriedade CSS de um elemento usando JavaScript? por exemplo, eu tenho div.style.zoom = 1.2
, agora eu quero remover a propriedade zoom através de JavaScript?
Respostas:
Você tem duas opções:
OPÇÃO 1:
Você pode usar o método removeProperty . Ele removerá um estilo de um elemento.
el.style.removeProperty('zoom');
OPÇÃO 2:
Você pode configurá-lo para o valor padrão:
el.style.zoom = "";
O zoom efetivo agora será o que se segue das definições definidas nas folhas de estilo (por meio de tags de link e estilo). Portanto, essa sintaxe modifica apenas o estilo local desse elemento.
removeProperty removerá um estilo de um elemento.
Exemplo:
div.style.removeProperty ('zoom');
Página de documentação do MDN:
CSSStyleDeclaration.removeProperty
Você pode usar o objeto styleSheets:
document.styleSheets[0].cssRules[0].style.removeProperty("zoom");
Advertência nº 1: você precisa conhecer o índice da sua folha de estilo e o índice da sua regra.
Advertência # 2: Este objeto é implementado inconsistentemente pelos navegadores; o que funciona em um pode não funcionar nos outros.
CSSStyleRule.prototype.removeProperty
= (Na verdade CSSStyleRule
não tem nenhum métodos = (.
CSSStyleSheet.prototype.removeRule
para o resgate.
CSSStyleSheet.prototype.deleteRule
?
element.style.height = null;
resultado:
<div style="height:100px;">
// results:
<div style="">
IE
navegadores? Eu intencionalmente os ignoro já há anos.
Você pode tentar encontrar todos os elementos que possuem essa classe e definir a propriedade "zoom" como "nothing".
Se você estiver usando a biblioteca javascript jQuery, poderá fazê-lo com $(".the_required_class").css("zoom","")
Edit: Removida esta afirmação por se revelar não verdadeira, como apontado em um comentário e em outras respostas que de fato é possível desde 2010.
Falso: não há uma maneira conhecida de modificar folhas de estilo do JavaScript.
css
, não attr
, você está certo.
Você também pode fazer isso no jQuery dizendo $(selector).css("zoom", "")
Isso deve funcionar - definir o estilo embutido como normal para o zoom:
$ ('div'). attr ("estilo", "zoom: normal;");
na verdade, se você já conhece a propriedade, isso será feito ...
por exemplo:
<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;
}
Observe que isso funciona apenas para estilos embutidos ... não para os estilos especificados por meio de uma classe ou algo parecido ...
Outra observação: talvez você precise escapar de alguns caracteres nessa instrução de substituição, mas você entendeu.
Para alterar todas as classes para um elemento:
document.getElementById("ElementID").className = "CssClass";
Para adicionar uma classe adicional a um elemento:
document.getElementById("ElementID").className += " CssClass";
Para verificar se uma classe já está aplicada a um elemento:
if ( document.getElementById("ElementID").className.match(/(?:^|\s)CssClass(?!\S)/) )