Se eu tiver o seguinte em meu html:
<div style="height:300px; width:300px; background-color:#ffffff;"></div>
E isso na minha folha de estilo css:
div {
width:100px;
height:100px;
background-color:#000000;
}
Existe alguma maneira, com javascript / jquery, de remover todos os estilos embutidos e deixar apenas os estilos especificados pela folha de estilo css?
javascript
jquery
css
inline
Matt
fonte
fonte
.css()
com uma string vazia como o segundo valor removerá apenas o valor nomeado dos estilos embutidos, por exemplo, $ ('div'). Css ('display', ''); irá remover apenas a propriedade de exibição embutida (se definida).$('*').removeAttr('style')
para direcionar tudo.JavaScript simples:
Você não precisa do jQuery para fazer algo trivial como isso. Basta usar o
.removeAttribute()
método.Supondo que você esteja alvejando apenas um único elemento, você pode facilmente usar o seguinte: (exemplo)
Se você está almejando vários elementos, basta percorrer a coleção selecionada de elementos: (exemplo)
Array.prototype.forEach()
- IE9 e superior /.querySelectorAll()
- IE 8 (parcial) IE9 e superior.fonte
Array.prototype.forEach.call
o operador de splat razoavelmente bem suportado, o que economiza uma linha:[... document.querySelectorAll('div')].forEach(div => div.removeAttribute('style'))
.fonte
Eu estava usando o
$('div').attr('style', '');
técnica e não funcionava no IE8.Produzi o atributo de estilo usando
alert()
e ele não estava eliminando estilos embutidos..removeAttr
acabou fazendo o truque no IE8.fonte
Se você precisa apenas esvaziar o
style
de um elemento, então:element.style.cssText = null;
Isso deve ser bom. Espero que ajude!
fonte
element.style.display = null;
- isso é o que eu precisava: DIsso pode ser feito em duas etapas:
1: selecione o elemento que deseja alterar por tagname, id, classe etc.
var element = document.getElementsByTagName('h2')[0];
element.removeAttribute('style');
fonte
Você também pode tentar listar o css na folha de estilo como! Important
fonte