새 스타일 요소를 만드는 대신 항상 기존 스타일 시트에 개별 스타일 규칙을 추가 할 수 있습니다. 의 라인을 따라 뭔가 :로 의사 선택기를 가져하지만 그냥 간단하게 수 :
function addStyle() {
var style = document.styleSheets[0]; //select style sheet (0==first)
var styleSel = ".class:hover"; //define selector
var styleDec = "color: red;"; //define declaration
if(style.insertRule) { //for modern, DOM-compliant browsers
style.insertRule(styleSel+'{'+styleDec+'}', style.cssRules.length);
//I chose to do it this way to more easily support the addRule method, but
//know that insertRule only needs two parameters, full style rule
//(selector+prop/value declarations), and index to insert rule at
// styleSheets[0].insertRule(rule, index);
}else { //for IE < 9
style.addRule(styleSel, styleDec, -1);
}
}
나는이 당신이를 추가하는 클래스 (즉, 이미 정의 및 적용)를 사용하는 가정 example at MDN
적응 ID 또는 요소 선택자가 될 수 있습니다.
클래스 또는 스타일 규칙을 미리 추가 할 수없는 경우 (클래스 정의, 호버 정의, 원하는 요소에 클래스 적용) 거의 동일한 방식으로 동적으로 수행 할 수 있습니다.
'onmouseover'는'hover'와 동일합니다. 해당 이벤트를 첨부하고 클래스를 추가하고 CSS 스타일을 통해 클래스를 추가 할 수 있습니다. 재사용 성이 높습니다. – Zirak
왜 그냥 일반적인 CSS에서 정의하지 않고 자바 스크립트에서만 클래스를 변경합니까? – Dmitry
@Zirak, 거의. ': hover'는 IE6의''태그에서만 작동하지만'onmouseover'는 사실상 모든 요소에서 작동합니다. 그들은 유사하지만 동일하지는 않습니다. – Blender