Получите значение css без элемента DOM

От ссылка MySQL JOIN :

"STRAIGHT_JOIN подобен СОЕДИНЕНИЮ, за исключением того, что стол, из-за которого встают, всегда читается перед правильной таблицей. Это может использоваться для тех (небольшое количество) случаи, для которых оптимизатор соединения помещает таблицы в неправильный порядок".

12
задан HP. 17 October 2009 в 16:07
поделиться

3 ответа

Просто создайте элемент с этим именем класса и проверьте его. Вам даже не нужно прикреплять его к DOM:

var $el = $('<div class="classname"></div>');
var opacity = $el.css('opacity') // or whatever 

Хотя $ el фактически не присутствует в DOM, вы все равно получаете доступ ко всем его свойствам стиля.


Edit : как упоминалось в комментариях, этот подход не всегда работает должным образом (например, унаследованные значения css не определены явно в .classname, специфичность селектора выше .classname и т. Д.).

Например, следующая ошибка не выполняется из-за того, что #foo увеличивает специфичность селектора по сравнению с автономным .bar :

css:

#foo .bar { color: red; }

js:

var $el = $('<div class="bar"></div>');
$el.css('color'); // Expected: "red", Actual: ""
12
ответ дан 2 December 2019 в 19:31
поделиться

Вам необходимо проанализировать стили из document.styleSheets .

1
ответ дан 2 December 2019 в 19:31
поделиться

См. http://www.hunlock.com/blogs/Totally_Pwn_CSS_with_Javascript , который представляет кроссбраузерный подход к динамическому получению и добавлению CSS.

Он работает с document.styleSheets и оба IE .rules и все остальные .cssRules

Он также имеет то преимущество, что он несколько абстрактен, поэтому вам не нужно беспокоиться о подробнее.


Вышеупомянутая ссылка больше не работает. Ниже приведен снимок экрана статьи в блоге, захваченный архивом Интернета в 2008 году.

enter image description here

Функция в основном выполняет итерацию по всем стилям всех таблиц стилей и предоставляет возможность изменять / удалять их.
Обратите внимание на ], что это не рекомендуется, поскольку большинство современных таблиц стилей слишком велики, чтобы сделать эту операцию эффективной.

4
ответ дан 2 December 2019 в 19:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: