| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: Общие вопросы > Как программировать динамические стили? |
| Автор: 12345c 31.7.2006, 18:44 | ||
Есть отладочный пример:
Как выполнить такое назначение стиля? (Динамически сгенерировать строку стиля на клиенте и заставить её работать, в IE, Opera.) |
| Автор: skyboy 31.7.2006, 23:00 |
| может, http://wdh.suncloud.ru/dhtml09.htm поможет... |
| Автор: Sardar 1.8.2006, 02:12 |
| 12345c, попробуй document.documentElement.style.display="none";... ="";, всё моргнёт, но стили может обновяться. В ИЕ и возможно в Опере есть object.style.cssText = "стили" позволяющие задать текстом стили для элемента, как обходной вариант если не поможет. |
| Автор: 12345c 1.8.2006, 15:41 | ||
| skyboy, да, там всё есть, +1 Sardar, не получается, потому что IE-opera сразу говорит, что "так низзя" - даёт ошибку на вызов именованного стиля. Итого, 1) стили в IE-opera именовать (id, name) нельзя - доступ к ним - только через document.styleSheets[].rules[]; 2) прочитать оператор стиля: IE - document.styleSheets[i].rules[j].selectorText - селектор (тег, класс, элемент, каскад); document.styleSheets[i].rules[j].style.cssText - текст стиля, который в фигурных скобках; FF - document.styleSheets[i].cssRules[j].selectorText - селектор; document.styleSheets[i].cssRules[j].cssText - текст стиля; (однако, с разницей, если селекторы через ","!). 3) записать оператор стиля (заменить - не существует?) IE - document.styleSheets[i].addRule("селектор","текст",j) - 3 параметра; FF - document.styleSheets[i].insertRule("селектор{текст}",j) - 2 параметра; (если ошибиться с видом параметров, IE хорошо подвешивается, но система устоит Вставляет стиль перед существующим номером или в конец, если j - длина массива styleSheets. Opera 7.54 - нет такой коллекции styleSheets[] , не умеет программировать стили. Следующий вопрос по Опере - с какой версии начинает поддерживаться? Тестовый код для проверки версий:
|