O título resume bastante.
A folha de estilos externa possui o seguinte código:
td.EvenRow a {
display: none !important;
}
Eu tentei usar:
element.style.display = "inline";
e
element.style.display = "inline !important";
mas nem funciona. É possível substituir um estilo importante usando javascript.
Isto é para uma extensão greasemonkey, se isso faz diferença.
javascript
css
Enrico
fonte
fonte
Respostas:
Acredito que a única maneira de fazer isso é adicionar o estilo como uma nova declaração CSS com o sufixo '! Important'. A maneira mais fácil de fazer isso é anexar um novo elemento <style> ao cabeçalho do documento:
As regras adicionadas com o método acima substituirão (se você usar o sufixo! Important) outro estilo definido anteriormente. Se você não estiver usando o sufixo, certifique-se de levar em consideração conceitos como ' especificidade '.
fonte
Existem algumas linhas simples que você pode usar para fazer isso.
1) Defina um atributo "style" no elemento:
ou...
2) Modifique a
cssText
propriedade dostyle
objeto:Qualquer um fará o trabalho.
===
BTW - se você deseja uma ferramenta útil para manipular
!important
regras em elementos, escrevi um plugin jQuery chamado "important": http://github.com/premasagar/importantfonte
style
tag.style
atributo, não para uma tag / elemento.element.style.cssText += ';display:inline !important;';
element.style.setProperty
.element.style
possui umsetProperty
método que pode ter a prioridade como um terceiro parâmetro:Não funcionou nos IEs antigos, mas deve funcionar bem nos navegadores atuais.
fonte
boxShadow
Com base na excelente resposta de @ Premasagar; se você não quiser remover todos os outros estilos embutidos, use este
Não é possível usar
removeProperty()
porque não remove!important
regras no Chrome.Não pode ser usado
element.style[property] = ''
porque ele aceita apenas camelCase no FireFox.fonte
element.style.setProperty
.Método melhor que acabei de descobrir: tente ser mais específico que a página CSS com seus seletores. Eu só tinha que fazer isso hoje, e funciona como um encanto! Mais informações no site do W3C: http://www.w3.org/TR/CSS2/cascade.html#specificity
fonte
Se você deseja atualizar / adicionar um estilo único no atributo de estilo do elemento DOM, pode usar esta função:
style.cssText é suportado para todos os principais navegadores .
Exemplo de caso de uso:
Aqui está o link para a demonstração
fonte
Se tudo o que você está fazendo é adicionar css à página, sugiro que você use o complemento Stylish e escreva um estilo de usuário em vez de um script de usuário, porque um estilo de usuário é mais eficiente e apropriado.
Consulte esta página com informações sobre como criar um estilo de usuário
fonte
https://developer.mozilla.org/en-US/docs/Web/CSS/initial
usar propriedade inicial em css3
fonte
https://jsfiddle.net/xk6Ut/256/
Uma opção para substituir a classe CSS no JavaScript é usar um ID para o elemento style, para que possamos atualizar a classe CSS
..
fonte
Em vez de injetar estilo, se você injetar uma classe (por exemplo: 'show') através de um script java, ela funcionará. Mas aqui você precisa de css como abaixo. a regra css da classe adicionada deve estar abaixo da regra original.
fonte
Lá temos outra possibilidade de remover um valor da propriedade do CSS.
Como usar o método de substituição em js. Mas você precisa saber exatamente o ID do estilo ou pode escrever um loop for para detectá-lo por (conte os estilos na página e verifique se algum deles 'inclui' ou 'corresponde' a um
!important
valor). também - quanto os contém, ou simplesmente escreva um método global de substituição [regexp: / str / gi]O meu é muito simples, mas anexo um jsBin, por exemplo:
https://jsbin.com/geqodeg/edit?html,css,js,output
Primeiro, defino o plano de fundo do corpo em CSS para amarelo
!important
, depois substituí por JS para darkPink.fonte
Abaixo está um trecho de código para definir o parâmetro importante para o atributo style usando jquery.
O uso é bem simples: basta passar um objeto contendo todos os atributos que você deseja definir como importantes.
Existem duas opções adicionais.
1.Para adicionar um parâmetro importante ao atributo de estilo já presente, passe uma string vazia.
2.Para adicionar parâmetros importantes para todos os atributos presentes, não passe nada. Ele definirá todos os atributos como importantes.
Aqui é viver em ação. http://codepen.io/agaase/pen/nkvjr
fonte