Как вы добавляете правила CSS (например strong { color: red }
), используя Javascript?
javascript
css
nickf
источник
источник
<strong>
элемент будет добавлен в документ.Ответы:
Вы также можете сделать это с помощью CSS-интерфейсов DOM Level 2 ( MDN ):
... на всех, кроме (естественно) IE8 и более ранних версий, которые используют свои собственные незначительно отличающиеся формулировки:
В этом есть теоретическое преимущество по сравнению с методом createElement-set-innerHTML в том, что вам не нужно беспокоиться о размещении специальных символов HTML в innerHTML, но на практике элементами стиля являются CDATA в унаследованном HTML и '<' и '&' редко используются в таблицах стилей в любом случае.
Вам нужна таблица стилей, прежде чем вы сможете добавить к ней вот так. Это может быть любая существующая активная таблица стилей: внешняя, встроенная или пустая, это не имеет значения. Если его нет, единственным стандартным способом его создания на данный момент является createElement.
источник
sheet = window.document.styleSheets[0]
(у вас должен быть хотя бы один <style type = "text / css"> </ style>).SecurityError: The operation is insecure.
Простой и прямой подход заключается в создании и добавлении нового
style
узла в документ.источник
document.body
также короче, чтобы набрать и быстрее выполнить,document.getElementsByTagName("head")[0]
и избегает кросс-браузерных проблем с insertRule / addRule.document.head.appendChild
.document.body.appendChild(css);
его, убедитесь, что новый CSS всегда является последним правилом.Решение Бена Бланка не будет работать в IE8 для меня.
Однако это сработало в IE8
источник
head
before.cssText
, иначе IE6-8 потерпит крах, если онcssCode
содержит @ -directive, например@import
или@font-face
, см. Обновление phpied.com/dynamic-script-and-style-elements-in-ie и stackoverflow .com / a / 7952904Вот немного обновленная версия решения Криса Херринга с учетом того, что вы также можете использовать
innerHTML
вместо создания нового текстового узла:источник
head
прежде чем установки.cssText
, или IE6-8 будет врезаться , еслиcode
содержит @ -directive, как@import
и в@font-face
разделе Обновление до phpied.com/dynamic-script-and-style-elements-in-ie и StackOverflow .com / a / 7952904Самый короткий лайнер
источник
Вы можете добавлять классы или атрибуты стиля для каждого элемента отдельно.
Например:
Где вы могли бы сделать this.style.background, this.style.font-size и т. Д. Вы также можете применить стиль, используя тот же самый метод ala
Если вы хотите сделать это в функции javascript, вы можете использовать getElementByID, а не «this».
источник
Этот простой пример добавления
<style>
в голову HTMLСтиль динамического источника - манипулирование CSS с помощью JavaScript
источник
YUI только недавно добавил утилиту специально для этого. Смотрите stylesheet.js здесь.
источник
Это мое решение добавить правило CSS в конец последнего списка таблиц стилей:
источник
Другой вариант - использовать JQuery для хранения встроенного свойства стиля элемента, добавления к нему, а затем для обновления свойства стиля элемента новыми значениями. Следующим образом:
А затем выполните его с новыми атрибутами CSS в качестве объекта.
Это не обязательно самый эффективный метод (я открыт для предложений о том, как это улучшить. :)), но он определенно работает.
источник
Вот пример шаблона, который поможет вам начать
Требует 0 библиотек и использует только JavaScript для внедрения HTML и CSS.
Функция была заимствована у пользователя @Husky выше
Полезно, если вы хотите запустить скрипт tampermonkey и хотите добавить наложение переключателя на веб-сайт (например, приложение для заметок)
источник
если вы знаете, что хотя бы один
<style>
тег существует на странице, используйте эту функцию:использование :
источник
Вот моя функция общего назначения, которая параметризует селектор и правила CSS и, при желании, принимает имя файла css (чувствительно к регистру), если вы хотите вместо этого добавить на определенный лист (в противном случае, если вы не предоставляете имя файла CSS, создаст новый элемент стиля и добавит его к существующему заголовку. Он создаст не более одного нового элемента стиля и повторно использует его при будущих вызовах функций). Работает с FF, Chrome и IE9 + (возможно, раньше, не проверял).
источник
использовать
.css
в Jquery, как$('strong').css('background','red');
источник