Установка целой строки стиля на элемент из javascript (не отдельные параметры стиля)
Мне нужно установить произвольный стиль в span через javascript.
Я знаю, что могу делать такие вещи, как: span.style.height = "250px";
Но мне нужно иметь возможность вставить случайное полное определение стиля из шаблона
например
float:left;
text-decoration:underline;
cursor:pointer;
color:blue;
Есть ли способ сделать это в Javascript? Что-то вроде element.style = "все определение стиля здесь";
Ответы
Ответ 1
Как насчет свойства .style.cssText? Здесь объяснение корпорации Майкрософт.
Бросьте стили, которые вы хотите применить так:
document.getElementById('myEl').style.cssText = 'float:left;margin-top:75px;';
Что касается поддержки браузеров, хотя это было IE-проприетарным, я считаю, что он хорошо поддерживается (работает в IE, FF3 и Safari 3.2 WIN как минимум).
Ответ 2
Если вы хотите, чтобы он был легким, создайте функцию, например:
function setStyles(element, styles)
{
for(var s in styles) {
element.style[s] = styles[s];
}
}
Затем вы передадите стили в виде литерала объекта:
setStyles(element, {float: "left",
textDecoration: "underline",
cursor: "pointer",
color: "blue"});
Обратите внимание, что ссылки на стиль, переданные в, должны следовать именованию с точки зрения JavaScript, поскольку функция просто изменяет стили, обращаясь к элементу style
через JavaScript.
Если вы должны взять свой стиль ввода из строки, вы могли бы легко проанализировать его и создать литерал объекта.
Ответ 3
Существует element.setAttribute('style', '...');
, но он не работает в IE.
Существует решение, но я не пробовал.