Вы не можете стилизовать псевдокласс для отдельного элемента самостоятельно, так же как вы не можете иметь псевдокласс в встроенном стиле = "..." (поскольку селектор отсутствует).
Вы можете сделать это путем изменения таблицы стилей, например, путем добавления правила:
#elid:hover { background: red; }
предполагая, что каждый элемент, который вы хотите воздействовать имеет уникальный идентификатор, чтобы позволить ему выбрать.
В теории документа вы хотите http://www.w3.org/TR/DOM-Level-2-Style/Overview.html, который означает, что вы можете (с учетом ранее существовавшим внедренными или связанными таблицы стилей), используя синтаксис, как:
document.styleSheets[0].insertRule('#elid:hover { background-color: red; }', 0);
document.styleSheets[0].cssRules[0].style.backgroundColor= 'red';
IE, конечно, требует своего собственного синтаксиса:
document.styleSheets[0].addRule('#elid:hover', 'background-color: red', 0);
document.styleSheets[0].rules[0].style.backgroundColor= 'red';
Старые и второстепенные браузеры, вероятно, не поддерживают ни синтаксис. Динамическое ведение статистики стилей редко выполняется, потому что это довольно раздражает, чтобы получить право, редко необходимо и исторически затруднительно.
+1 очень полезный материал – Anurag 2010-04-22 23:46:40
Почему это не выбран в качестве ответа? – SZH 2011-03-24 23:26:57
Более конкретные ссылочные URL: - - - –
2011-08-28 06:13:48