styleSheet 동적으로 적용하기

Style을 정의할때 우선순위가 있고, 동적으로 "style을 덮어 쓰려면 해당 순위보다 높은 순위에 있어야 한다"를 기본 조건으로 하고 동적으로 style를 변경할수 있는 방법을 알아보자.

style를 동적으로 변경하기 위해서는 각각의 element에 접근하여 CSS text를 넣어도 되지만, 이 방법은 1개의 element style을 바꿀때는 효과적이나 많은 element 들을 한번에 바꾸기에는 비효율적이다. (*각각의 element에 접근하여 수정할때 보다 성능이 월등하다.)

ie(버전 6~8까지 테스트를 한결과) 에서는 doc.createElement("style") 를 작성해서 addendChil를 하면 "메서드 또는 속성 액세스로의 예기치 않은 호출입니다."라는 오류를 내버린다.

그래서 CSS text 덩어리를 한번에 입력하여 변경하는 아래의 방법을 제시한다. 단, ie에서는 stylesheet코드를 addpendChild 하더라도 적용이 되지 않으며 ss1.styleSheet.cssText = cssText; 만으로 동적인 변경이 가능하다.


저작자 표시