Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Определить, задано ли свойство в CSS (https://javascript.ru/forum/misc/37390-opredelit-zadano-li-svojjstvo-v-css.html)

gmihalkov 17.04.2013 23:23

Определить, задано ли свойство в CSS
 
Требуется определить, ЗАДАНО ЛИ свойство где-нибудь в CSS.
Встроенные функции .getComputedStyle и .currentStyle возвращают значение даже если CSS свойство для элемента не прописано (значение по умолчанию для браузера). Нужна функция вида
function cssExists(element, styleName) { [code] }, которая возвращала бы true или false в том случае, если где-то в стилях указанное свойство прописано.

skrudjmakdak 18.04.2013 09:01

console.log(object.style.color);
вот если стиль в классе прописан, то копаться надо.. имхо вернет не то что надо (не помню)..

danik.js 18.04.2013 10:09

Проходим по всем стилям документа, проверяем каждый селектор через element.matchesSelector(selector) (с браузерными префиксами и костылем для старых браузеров). Подругому наверное никак.

Aetae 18.04.2013 13:10

danik.js, и так тоже может не сработать - если css-ка, например, с другого домена грузится.=)

Вариант - сравнить getComputedStyle чистого элемента из ифрейма и текущего. Но если в css указано точно такое-же значение как и дефалтное - не прокатит.(Честно говоря не догадываюсь зачем оно вообще надо)

danik.js 18.04.2013 17:11

Цитата:

Сообщение от Aetae
Но если в css указано точно такое-же значение как и дефалтное - не прокатит.(Честно говоря не догадываюсь зачем оно вообще надо)

Да да. Склонировать документ во фрейм, но без стилей. И сравнивать. Хотя при клонировании может что-то полететь...

Aetae 18.04.2013 20:40

Цитата:

Сообщение от danik.js (Сообщение 246940)
Да да. Склонировать документ во фрейм, но без стилей. И сравнивать. Хотя при клонировании может что-то полететь...

Зачем весь документ, просто элемент. На вскидку вроде никакие дефалтные стили не зависят от вложенности.


Часовой пояс GMT +3, время: 02:01.