Просмотрите объект document.styleSheets
, итерируйте по каждому объекту таблицы стилей, а затем по каждому правилу.Затем вам нужно будет проанализировать свойство selectorText
, по сути, написать собственный синтаксический анализатор CSS, сохраняя при этом внутренний массив в отношении специфики каждого селектора.
Сравните специфику текущего правила с предыдущими, затем определите, какое свойство переопределяет какое.После всего этого вам все равно нужно будет проверить наследование - просмотрите каждый родительский элемент рассматриваемого элемента и найдите свойства, которые можно унаследовать, и добавьте их в этот список, если они еще не установлены для дочерних элементов,Это также означает, что вам нужно будет поддерживать набор свойств, которые наследуются.
Если вы не поняли, это довольно сложное дело.Почему бы просто не пойти и не использовать все инструменты разработчика, доступные для вашего браузера, и взглянуть на правила CSS, предоставленные ими.