티스토리 뷰

사실 이건 상당히 간단하다.

h1.style.color = tomato;

와 같은 접근 방법으로 CSS 요소를 변경할 수 있다.

그렇지만, CSS 변경은 CSS 파일에서 하는 것이 좋을 것이다.

그렇다면 CSS 요소를 어떻게 인터랙티브하게 구성할 수 있을까?

 

먼저 CSS 파일의 구성을 이렇게 한다.

body {
	background-color: beige;
}

h1 {
	color: powderblue;
}

.active {
	color: tomato;
}

여기서 h1이 변경하게 될 요소이며, 해당 요소의 특정 이벤트가 트리거되면 그 요소의 색을 tomato로 변경할 것이다.

이를 위에 쓴 것 마냥, h1.style.color = tomato; 로 변경하지 말고 변경하게 될 값을 CSS에 저장한다음,

javascript에서는 해당 element로 연결만 시켜주자는 게 요지이다.

 

BEFORE

fuction handleTitleClick() {
	h1.style.color = "tomato";
}

h1.addEventListener("click", handleTitleClick);

AFTER

fuction handleTitleClick() {
	h1.className = "active";
}

h1.addEventListener("click", handleTitleClick);

다시 한 번 정리하자면, javascript에서 h1 글자를 토마토로 바꿔! 라고 직접 개입을 하는 것이 아니라

h1의 class를 active로 변경해!(그리고 CSS에서 active class는 글자색을 tomato로 정의한다.) 를 통해 간접 개입을 하는 것.

 

이로 얻는 이득이 무엇일까? 내 생각엔 확실한 분리로 인한 코드의 일관성이라 생각한다.

내가 저 토마토 색을 나중에 엄청엄청 복잡한 코드가 된 이후에, 에메랄드 색으로 바꿔야 한다고 생각해보자.

해당 요소는 분명히 CSS인데, javascript 가서 그걸 찾고 수정하고 앉았어야 한다는 것이다.

이런 함수가 수백수천개라 생각해보자.. 얼마나 헷갈릴까?

 

 

 

'■ FE 로드맵 > ◻ WEB 기초' 카테고리의 다른 글

html element를 안보이게 하기  (0) 2022.07.28
Cleaning Code Tip  (0) 2022.07.27
Web Event를 javscript로 제어하기  (0) 2022.07.27
javascript로 html과 상호작용하기  (0) 2022.07.27
MySQL 겅부  (0) 2022.07.21
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/09   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함