Создание, изменение и отключение нескольких правил CSS по идентификатору с помощью JavaScriptCSS

Разбираемся в CSS
Ответить Пред. темаСлед. тема
Anonymous
 Создание, изменение и отключение нескольких правил CSS по идентификатору с помощью JavaScript

Сообщение Anonymous »

Аннотация
Я пытаюсь найти способ использовать 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «CSS»