Eu tenho uma certa folha de estilo para um div. Agora eu quero modificar um atributo de div dinamicamente usando js.
Como eu posso fazer isso?
document.getElementById("xyz").style.padding-top = "10px";
Isso está correto?
fonte
Eu tenho uma certa folha de estilo para um div. Agora eu quero modificar um atributo de div dinamicamente usando js.
Como eu posso fazer isso?
document.getElementById("xyz").style.padding-top = "10px";
Isso está correto?
Está quase correto.
Como -
é um operador javascript, você realmente não pode ter isso em nomes de propriedades. Se você estivesse definindo,border
ou algo parecido com uma única palavra, seu código funcionaria bem.
No entanto, o que você precisa lembrar padding-top
, e para qualquer nome de atributo hifenizado, é que em javascript, você remove o hífen e torna a próxima letra maiúscula, então no seu caso seria paddingTop
.
Existem algumas outras exceções. JavaScript tem algumas palavras reservadas, então você não pode definir float
assim, por exemplo. Em vez disso, em alguns navegadores você precisa usar cssFloat
e em outros styleFloat
. É para discrepâncias como essa que é recomendado que você use um framework como o jQuery, que lida com as incompatibilidades do navegador para você ...
Além de outras respostas, se você quiser usar a notificação de travessão para propriedades de estilo, também pode usar:
document.getElementById("xyz").style["padding-top"] = "10px";
document.getElementById("xyz").style["paddingTop"] = '10px'
.Resolvo problema semelhante com:
Espero que ajude.
fonte
0
. E às vezes você não quer isso.Também existe a
style.setProperty
função:https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleDeclaration/setProperty
fonte
Supondo que você tenha um HTML como este:
Se você quiser modificar o atributo de estilo deste div, use
Substitua
[ATTRIBUTE]
pelo atributo de estilo que você deseja. Lembre-se de remover '-' e colocar a seguinte letra em maiúscula.Exemplos
fonte
float
.será
fonte
Eu recomendaria usar uma função, que aceita o id do elemento e um objeto contendo as propriedades CSS, para lidar com isso. Dessa forma, você escreve vários estilos de uma vez e usa a sintaxe de propriedade CSS padrão.
Melhor ainda, você pode armazenar os estilos em uma variável, o que tornará o gerenciamento da propriedade muito mais fácil, por exemplo
espero que ajude
fonte
Fiquei surpreso por não ter visto a solução do seletor de consulta abaixo ,
Soluções CSSStyleDeclaration , um exemplo de resposta aceita
fonte
também faria o trabalho.
fonte
funciona para mim
fonte