2012-01-13 2 views
1

Используя чистый JS, мне нужно определить свойство отображения элемента, унаследованного от более высокого уровня.получение унаследованного свойства style.display

Элементы представляют собой входы, вложенные в набор полей, родительский набор полей, возможно, имел свойство отображения, равное none, и если это необходимо, мне нужно определить это условие.

Я попытался получить свойство element.style.display, но поскольку он унаследован, это не дает мне то, что мне нужно ???

Любые идеи?

ответ

0

По правилам CSS свойство display не наследуется (за исключением того, что он может быть явно установлен в значение inherit).

Если элемент имеет display: none, то ни один из его потомков не отображается, какими бы ни были их значения display. Чтобы определить, находится ли элемент в такой ситуации, вам нужно пройти по дереву документа вверх и проверить вычисленные стили всех предков (и тогда возникает сложность, которая до IE 8, IE не поддерживает window.getComputedStyle).

Так что это выполнимо, но вы уверены, что нет более простого способа? Зачем вам нужно знать, находится ли поле внутри элемента, который не отображается (из-за ваших настроек, предположительно)?

+0

IE действительно реализует ['currentStyle'] (http://www.quirksmode.org/dom/getstyles.html), хотя – user123444555621

Смежные вопросы