Я знаю, что jQuery не может напрямую манипулировать псевдоэлементами CSS, и я уже прочитал кучу сообщений здесь, которые не отвечают на мой вопрос.Изменить псевдоэлемент из значения поля с помощью jQuery/JS?
Мне нужно изменить CSS псевдоэлемента со значением поля.
У моего проекта есть значок, который отображается перед текстом, используя: раньше. Мне нужен размер шрифта этой значки для динамического изменения, поскольку пользователь меняет значение в поле.
У меня есть основы сценария вниз, но я просто не могу заставить его изменять размер шрифта при каждом изменении. Например (#base_size является поле с целочисленным значением, в: прежде, чем это псевдо элемент, который вставлен значок):
$('#base_size').change(function() {
var baseSize = $(this).attr('value');
document.styleSheets[0].insertRule('.item a:before { font-size:' + baseSize + 'px !important; }');
});
Этот конкретный JQuery будет изменить размер шрифта, но только в первый раз. Дальнейшие изменения в #base_size не влияют на псевдоэлемент, но каждое изменение создает новое правило CSS. Как ни странно, инструменты Chrome dev показывают «.item a :: before» (по одному для каждого изменения) с двумя двоеточиями и без деклараций.
Возможно, я ошибаюсь. Я буду очень благодарен за любую помощь!
В CSS3, Сингл двоеточие зарезервирован для классов псевдослучайных, как ': active' и': visited'. Двойная двоеточие предназначена для элементов psuedo, таких как ':: before' и' :: after'. CSS2 использовал один двоеточие для обоих. – mwcz
Почему вы вставляете правила, добавляете свою таблицу стилей вместо использования встроенных стилей? – Pieter
Возможный дубликат [Манипулирование псевдоэлементов CSS с помощью jQuery (например: before и: after)] (http://stackoverflow.com/questions/5041494/manipulating-css-pseudo-elements-using-jquery-eg-before- и-after) – Blazemonger