CSS

[CSS] :root 가상 클래스

해봄코딩 2023. 1. 3. 20:34

오늘도 클론코딩을 하다가 모르는 명령어가 나와서 부랴부랴 찾아봅니다. 

 

 

:root에 대해서 mdn 사이트를 찾으면  다음과 같이 설명되어 있습니다. 

CSS :root 의사 클래스는 문서 트리의 루트 요소를 선택합니다.
HTML의 루트 요소는 <HTML>요소이므로, :root의 명시도가 더 높다는 점을 제외하면 html 선택자와 똑같습니다.

번역이 이상한건지  저같은 초보자는 무슨 말인지 잘 이해가 안갑니다.   

 

인터넷에 뒤적거리다보니(디자이너의 기록(https://designer-ej.tistory.com/)발췌) 다음과 같이 설명이 되어 있습니다. 

:root 는 웹문서 구조에서 가장 상위 요소를 선택할때 사용한다. 
html에서는 root는 항상 html을 가르킨다. 그러나 html보다 :root 가상클래스의 스타일 적용 우선순위가 더 높다. 
문서 전반적으로 재사용할 임의가 있는 값을 작성한다. 

아. 덕분에 좀 이해가 되네요. 어쨌든 :root를 사용하면 우선순위가 높아지는군요! 

 

그래서 어디에 쓰는건가 찾아봤더니 다음과 같은 이유에서 사용한다고 합니다. (친절한 효자손 취미생활  https://rgy0409.tistory.com/ 발췌)

웹사이트에는 엄청난 양의 CSS를 가지고 있는데, 유지보수를 하려면 한꺼번에 바꿔야 할때가 있습니다. 

예를 들어서, 보라색을 좀더  밝은 보라로 바꾸고 싶을때가 있는데, color가 지정된 것을 하나씩 다 찾아 바꿔주기에 시간이 너무 오래 걸립니다. 

 

이럴때 :root로 변수를 지정해주면 변수의 값만 바꾸면 됩니다. 

 

예시를 봅시다.

:root {
	--mood-color-1: #2d6b5f;  //속성값을 여기서 수정만 해주면 전체가 다 관리가능하겠쥬?
	--mood-color-2: #72e3a6;
	--mood-color-3: #dff4c7;
	--mood-color-4: #edbf98;
	--mood-color-5: #ea3d36;
}


.mood_1 {
	color: var(--mood-color-1);  //이렇게 변수를 지정만 해줍니다. 
}

.mood_2 {
	color: var(--mood-color-2);
}

.mood_3 {
	color: var(--mood-color-3);
}

.mood_4 {
	color: var(--mood-color-4);
}

.mood_5 {
	color: var(--mood-color-5);
}

 

* :root부분에 -- 이렇게 시작을 한다. 이 뒤에 변수명 입력 후에 속성값을 입력합니다. 

* 적용시킬 때는 var로 변수를 선언하고 root에서 정의한 변수명을 입력하면 됩니다. 

 

아하! 이제 좀 이해가 되네요! 

 

 

'CSS' 카테고리의 다른 글

[CSS] display : none vs visibility: hidden  (0) 2023.02.16
[CSS] input 태그 안의 타입(type)을 선택하려면?  (0) 2023.01.24
[CSS] ::after에 대해서  (1) 2023.01.19
CSS : z-index에 대해서  (0) 2022.12.06
CSS : Position에 대해서  (0) 2022.11.30