Хорошо, допустим, мы создаем элемент DOM:
let element = document.createElement('div');
Теперь, если я хочу применить к нему стили, мы можем сказать:
element.style = 'display: inline-block; width: 50%; height: 100px; background: #f00;';
Мы также можем сказать это:
elemenet.style.display = 'inline-block';
elemenet.style.width = '50%';
elemenet.style.height = '100px';
elemenet.style.background = '#f00';
Этот подход слишком много повторяется, потому что вы всегда говорите element.style.
, когда применяете несколько стилей.
В jQuery-подобном синтаксисе мы можем применить объект пар ключ-значение в методе jQuery $.css()
, например:
$(element).css({
display: 'inline-block',
width: '50px',
height: '100px',
background: '#f00'
});
С учетом сказанного мы можем сказать следующее:
let styles = {
display: 'inline-block',
width: '50px',
height: '100px',
background: '#f00'
};
for(let property in styles) {
if(styles.hasOwnProperty(property)) {
element.style[property] = styles[property];
}
}
Это будет применять все стили в element
. Я мог бы даже написать функцию, скажем, applyCSS(element, styles)
и сделать то же самое, что и выше.
Но, в последнем случае, если мы сделаем следующее:
element.style = {
display: 'inline-block',
width: '50px',
height: '100px',
background: '#f00'
};
Это не будет летать вообще. Это не будет работать вообще, и к элементу не будут применены стили.
Мой вопрос: как правильно применять пары ключ-значение для style
в DOM?