본문 바로가기
개발/Javascript

Javascript 를 이용해 동적으로 CSS 스타일 추가하기

by 비손 2014. 3. 20.

자바스크립트를 이용해서 동적으로 스타일을 추가하는 방법입니다.

여기서 소개하는 방법은 DOM 객체 하나 하나에 스타일을 추가하는 것이 아니라, 규칙 자체를 head 안에 넣는 방법입니다.

<style>태그를 생성해 준다고 보면 되겠네요.


IE7,8,9,11 과 Chrome, Firefox, Safari 에서 테스트 해봤습니다.


<script type="text/javascript">

// add stylesheet

var sheet = document.createElement('style');

var sheet_str = "body {background-color:red; }";

var head = document.head || document.getElementsByTagName('head')[0];

sheet.type='text/css';


// for under ie9

if (sheet.styleSheet) {

sheet.styleSheet.cssText=sheet_str;

}

// for recently browsers(ie9 and over, chrome, firefox, safari etc...)

else {

sheet.appendChild(document.createTextNode(sheet_str));

}

head.appendChild(sheet);

</script>

[출처:http://stackoverflow.com/questions/524696/how-to-create-a-style-tag-with-javascript]

[원본 코드에서 약간의 수정이 가해졌습니다.]


위와 같은 형태로 <body> 태그 하단부에 작성해 주시면 됩니다.

볼드 처리된 부분을 보시면 아시겠지만, 위 스크립트를 실행하면 배경색을 빨갛게 만들어 줍니다.


규칙 자체를 추가하는 방법이기 때문에, 동적인 페이지에서 동적으로 스타일을 추가해야 하는 상황에서 사용하면 되겠지만, 쓸 일이 많이 없을지도 모르겠네요.