Предположим, вы хотите изменить ширину многих элементов, например, для имитации таблицы. Я понимаю, что вы могли бы сделать это:Определение правила CSS CSS с использованием jQuery
$(".class").css('width', '421px');
Это изменяет встроенный style='width: 421px;'
атрибут для каждого элемента. Теперь, что я хотел бы сделать: это изменить фактическое определение правила CSS:
.class {
width: 375px; ==[change to]==> 421px;
}
Когда дело доходит до 100, если не 1000-гнездовой <ul>
и <li>
, которые должны быть изменены, то кажется, что это было бы лучше для производительности, чем попытка позволить jQuery выполнять работу с помощью метода .css()
.
Я нашел this example - это то, что я пытаюсь сделать:
var style = $('<style>.class { width: 421px; }</style>')
$('html > head').append(style);
Я не пытаюсь поменять классы ($el.removeClass().addClass()
), потому что я не могу иметь класс для КАЖДЫЙ оптимальной ширина (379px, 387px, 402px ..).
Я мог бы создать элемент <style>
и динамически установить ширину, однако я думаю, что есть лучший способ.
Я действительно думаю, что вы должны написать два класса в своем CSS и добавить/удалить соответствующие, когда это необходимо. Вы не должны возиться со своей таблицей стилей в JS, она быстро станет неподъемной. – kapa
@kapa, это имеет свои пределы, потому что весь CSS должен быть определен заранее. Например, вы не могли выделить произвольные элементы nth-child: '#root> div: nth-child ('+ Nth +') {background: red; } ' –