Відповіді:
Це майже правильно.
Оскільки -
оператор javascript, то в іменах властивостей його реально не можна. Якщо ви налаштовували border
або щось замість цього однозначне, ваш код спрацював би чудово.
Однак, що вам потрібно пам’ятати padding-top
, а також будь-яке ім'я атрибута через дефіс - це те, що в JavaScript ви видаляєте дефіс і робите наступну велику літеру, тому у вашому випадку це буде paddingTop
.
Є деякі інші винятки. У JavaScript є кілька зарезервованих слів, тому ви не можете встановити float
це, наприклад. Натомість у деяких браузерах потрібно використовувати, cssFloat
а в інших styleFloat
. Саме для таких розбіжностей рекомендується використовувати таку структуру, як jQuery, яка обробляє несумісність браузера для вас ...
На додаток до інших відповідей, якщо ви хочете використовувати тире з тиском для властивостей стилю, ви також можете використовувати:
document.getElementById("xyz").style["padding-top"] = "10px";
document.getElementById("xyz").style["paddingTop"] = '10px'
.
Я вирішую подібну проблему з:
document.getElementById("xyz").style.padding = "10px 0 0 0";
Сподіваюся, що це допомагає.
0
. І іноді цього не хочеш.
Також є style.setProperty
функція:
https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleDeclaration/setProperty
document.getElementById("xyz").style.setProperty('padding-top', '10px');
// version with !important priority
document.getElementById("xyz").style.setProperty('padding-top', '10px', 'important');
Припустимо, у вас такий HTML:
<div id='thediv'></div>
Якщо ви хочете змінити атрибут стилю цього діла, скористайтеся
document.getElementById('thediv').style.[ATTRIBUTE] = '[VALUE]'
Замініть [ATTRIBUTE]
потрібний атрибут стилю. Не забудьте видалити "-" і зробіть наступну велику літеру.
Приклади
document.getElementById('thediv').style.display = 'none'; //changes the display
document.getElementById('thediv').style.paddingLeft = 'none'; //removes padding
float
.
Я рекомендую використовувати для цього функцію, яка приймає ідентифікатор елемента та об'єкт, що містить властивості CSS. Таким чином ви записуєте кілька стилів одночасно та використовуєте стандартний синтаксис властивості CSS.
//function to handle multiple styles
function setStyle(elId, propertyObject) {
var el = document.getElementById(elId);
for (var property in propertyObject) {
el.style[property] = propertyObject[property];
}
}
setStyle('xyz', {'padding-top': '10px'});
Ще краще ви можете зберігати стилі в змінній, що полегшить управління властивостями, наприклад
var xyzStyles = {'padding-top':'10px'}
setStyle('xyz', xyzStyles);
Сподіваюся, що це допомагає
document.getElementById("xyz").setAttribute('style','padding-top:10px');
також зробив би цю роботу.