Найти неактивные свойства CSS - PullRequest
0 голосов
/ 24 декабря 2008

Можно ли определить стили в файле CSS с помощью Javascript?

Я пытаюсь определить свойства CSS, которые будут применены к элементу в определенном состоянии, :hover в этом случае, но без тех свойств, которые в данный момент активны для элемента. Я думал о клонировании элемента, добавлении клона как брата с display: none и запросе свойств таким образом, но я не знаю, как заставить стиль :hover через Javascript. Есть идеи?

Ответы [ 4 ]

3 голосов
/ 05 февраля 2009

Я полагаю, что вы заинтересованы в массиве styleSheets, который является свойством document (document.styleSheets). Этот массив индексирует все таблицы стилей, на которые ссылается текущая страница, и позволяет перебирать все правила стиля в каждом листе. Массив W3C (Firefox, Opera, Safari) для доступа к правилам CSS равен cssRules, тогда как массив Microsoft - rules. Следующий фрагмент кода взят из www.quirksmode.org : var theRules = new Array(); if (document.styleSheets[1].cssRules) theRules = document.styleSheets<a href="http://www.quirksmode.org" rel="nofollow noreferrer">1</a>.cssRules else if (document.styleSheets[1].rules) theRules = document.styleSheets<a href="http://www.quirksmode.org" rel="nofollow noreferrer">1</a>.rules

Теперь theRules содержит правила для второй таблицы стилей для документа. См. Таблицы совместимости quirksmode и таблицы совместимости для получения дополнительной информации о доступе к правилам CSS из JavaScript.

0 голосов
/ 24 декабря 2008

Чтобы определить стили через JS, вы можете использовать className, например, например:

item.onmouseover = gohover;

item.onmouseout = nohover;

function gohover () {this.className = gClass;}

...

0 голосов
/ 08 января 2009

Если я правильно понимаю ваш вопрос, похоже, что вы ищете XPath для CSS (псевдо) классов. Кроме извлечения файла CSS с помощью Ajax и поиска с помощью регулярных выражений, я не знаю ни одного метода получения информации о стиле из файла CSS.

0 голосов
/ 24 декабря 2008

стиль наведения применяется браузером, в зависимости от движения мыши. Я не думаю, что вы можете форсировать это через JS. Но почему вы хотите? просто определите другой класс CSS и назначьте его через свойство className в JS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...