установка всей строки стиля для элемента из JavaScript (не отдельных параметров стиля) - PullRequest
24 голосов
/ 11 июня 2009

Мне нужно установить произвольный стиль для диапазона через JavaScript.

Я знаю, что могу делать такие вещи, как: span.style.height="250px"; Но мне нужно иметь возможность вставить случайное полное определение стиля из шаблона

например

float:left; 
text-decoration:underline; 
cursor:pointer; 
color:blue;

Есть ли способ сделать это в Javascript? Что-то вроде:

element.style="all style definition here";

Ответы [ 3 ]

44 голосов
/ 11 июня 2009

Как насчет свойства .style.cssText? Вот объяснение Microsoft.

Бросьте стили, которые вы хотите применить, вот так:

document.getElementById('myEl').style.cssText = 'float:left;margin-top:75px;';

Что касается поддержки браузеров, хотя она была проприетарной для IE, я считаю, что она хорошо поддерживается (по крайней мере, работает в IE, FF3 и Safari 3.2 WIN).

8 голосов
/ 11 июня 2009

Если вы хотите, чтобы он был легким, создайте такую ​​функцию, как:

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.

Если вы должны взять свой стиль ввода из строки, то вы можете довольно легко разобрать его и создать литерал объекта.

2 голосов
/ 11 июня 2009

Существует element.setAttribute('style', '...');, но в IE это не получается.

Существует решение , но я не пробовал.

...