CSS 변수를 설정할 때는 --로 시작하는 이름을 사용합니다. 변수 이름은 소문자, 숫자, 밑줄(_) 등을 포함할 수 있지만, 항상 --로 시작해야 합니다.
전역 변수를 설정할 때는 보통 :root 선택자를 사용합니다. :root는 HTML 문서의 최상위 요소를 가리키므로, 모든 곳에서 접근할 수 있는 변수를 정의할 수 있습니다. 이렇게 정의된 변수는 index.html에서 로드되는 다른 CSS 파일이나 스타일 태그에서도 사용할 수 있습니다. 사용은 함수 var()를 이용하며, 아래 var(--padding, 10px) 의 경우는 --padding 설정값이 없으면 디폴트로 10px이 적용됩니다.
:root {
--main-font: 'Arial, sans-serif';
--button-color: #e74c3c;
--main-color: #3498db;
--padding: 15px;
--url: url('images/bg.jpg');
}
body {
font-family: var(--main-font);
}
button {
background-color: var(--button-color);
color: white;
padding: var(--padding, 10px);
}
특정 요소나 클래스 안에서만 사용할 변수를 설정할 수도 있습니다. 이때 변수는 해당 요소 내부에서만 접근 가능합니다. 여기서 --card-padding은 .card 클래스 내부에서만 사용할 수 있는 변수입니다. CSS 변수는 기본적으로 상속되므로, 부모 요소에서 설정된 변수를 자식 요소에서 참조할 수 있습니다.
.card {
--card-padding: 20px;
padding: var(--card-padding);
}
HTML에서 변수 설정하기 - CSS 변수를 HTML의 style 속성으로 설정할 수도 있습니다. 이를 통해 JavaScript에서 동적으로 설정하거나 HTML 구조 내에서 특정 요소에 지역 변수를 지정할 수 있습니다:
<div class="soda-can" style="--url: url(images/example.jpg);"></div>
CSS 변수는 JavaScript로 동적으로 변경할 수 있어, 스타일을 실시간으로 업데이트할 때 유용합니다. 이를 위해 JavaScript의 setProperty() 메서드를 사용합니다.
<!DOCTYPE html>
<html lang="en">
<head>
<style>
:root {
--main-color: #3498db;
}
body {
background-color: var(--main-color);
}
</style>
</head>
<body>
<button onclick="changeColor()">Change Color</button>
<script>
function changeColor() {
document.documentElement.style.setProperty('--main-color', '#e74c3c');
}
</script>
</body>
</html>
CSS 변수는 calc()와 같은 함수에서 연산에 사용할 수 있습니다
:root {
--spacing: 15px;
}
.container {
width: calc(100% - var(--spacing) * 2);
margin: var(--spacing);
}
clientX, layerX, offsetX, pageX, x - 마우스 이벤트 객체의 좌표 속성 (1) | 2024.10.30 |
---|---|
:has(), :is(), :not() 선택자 - pseudo class (0) | 2024.10.30 |
mousemove , pointmove 차이점 (0) | 2024.10.28 |
getBoundingClientRect() (1) | 2024.10.27 |
window.addEventListener() 화살표 함수 와 일반 함수 참조 차이 (0) | 2024.10.11 |