Я пытаюсь найти способ использовать JavaScript для динамического создания правил CSS на странице, их изменения и отключения. Правила будут поставляться в «пакетах» с идентификатором и группой из одного или нескольких правил CSS, которые могут перекрываться.
Пример и данные
Код: Выделить всё
/*ID: something*/
div#foobar {display:none;}
/*ID: blah*/
input {background:red;}
div.password {width:100px;}
/*ID: test*/
div.password {width:200px;}
Код: Выделить всё
myrules["something"] = "div#foobar {display:none;}";
myrules["blah"] = "div.password {width:100px;} input {background:red;}";
myrules["test"] = "div.password {width:200px;}";
Теперь мне нужен способ добавить определенные правила на страницу с способом переключения их с помощью идентификаторов.
Требования
Основные проблемы, с которыми столкнулись текущие попытки (ниже):
- Добавление правил CSS с помощью синтаксиса CSS (т. е. не имен объектов JavaScript, поэтому background-color, а не .backgroundColor)
- Возможность включать и отключить правила
- Возможность доступа к правилам через строковый идентификатор, а не числовой индекс
- Правила должны быть объединены в один объект таблицы стилей или элемент, поскольку правил может быть МНОГО, поэтому создавать отдельный элемент таблицы стилей для каждого было бы непрактично
Я рассмотрел несколько разных способов: от document.styleSheets до .sheet.cssRules[], от .innerHTML до InsertRule() . У меня закружилась голова от попыток понять, что к чему; это такая трясина, с плохими примерами. Иногда мне удается использовать одну технику для достижения одного аспекта, но тогда другой аспект не работает. Я не могу найти решение, удовлетворяющее всем вышеупомянутым требованиям.
И поиск затруднен из-за неоднозначного характера формулировок, приводящих к неверным результатам поиска.
Конечно, должен быть эффективный способ сделать это, верно?
Подробнее здесь: https://stackoverflow.com/questions/791 ... javascript