При создании элементов я традиционно добавлял блок <style>
.
var style_rules = [];
style_rules.push("#" + myElemId + " { /* Rules */ } ");
/* ... */
var style = '<style type="text/css">' + style_rules.join("\n") + "</style>";
$("head").append(style);
Важная вещь, чтобы отметить, что, потому что вы не знаете, что любой из существующих стилей, или то, что id
«s могут конфликтовать на странице, это очень полезно, чтобы следить за вашими идентификаторами внутри вашего JavaScript, а затем использовать их для заполнения введенного блока <style>
. Я также, как правило, запускать мои имена через функцию приставкой для обеспечения того, чтобы общие имена wrapper
и unit
не противоречат друг другу (они превращаются в нечто вроде myunique_wrapper
и myunique_unit
.
Включение основной сброс CSS, как #myWrapper {margin: 0; padding: 0}
может быть достойную стартовую платформу для создания собственных пользовательских стилей.
Обращаясь к вашему уникальному случаю, в прямом эфире, так сказать, я бы назначил div со стандартными элементами. Затем, когда они нажимают «обновить», прочитайте в правилах и добавьте их в Если вы хотите отменить любые остаточные эффекты из прошлых правил, вы можете удалить последний элемент <style>
или еще лучше датьЭлемент- идентификатор. Я не уверен, что такой выбор будет работать, но он должен.
Я бы порекомендовал вам настроить свой ответ, чтобы исключить использование JQuery как OP не упомянул об использовании этого и не задавали вопрос с помощью jquery – jondavidjohn
@ Jondavid: Я делаю один вызов с jQuery, который на самом деле так же легко выполняется с использованием чистого JavaScript. Простое манипулирование DOM. Мой ответ использует jQuery, если OP не хочет использовать jQuery, то он, конечно, может изменить эту небольшую часть моего примерного кода. –
Тогда почему бы вам просто не настроить свой ответ, чтобы он соответствовал спецификациям OP? – jondavidjohn