[D3.js] HTML의 CSS
[D3.js] HTML의 CSS
CSS를 알아두면 D3.js를 사용할 때 편합니다. CSS은 HTML의 각 태그들의 스타일을 지정해 줍니다. 태그의 스타일을 D3.js 함수로 지정하여 멋지게 태그의 스타일을 만들기 때문에 미리 CSS의 개념을 잡아 놓으시면 나중에 D3.js에서 사용하실 때 효율적으로 코딩을 할 수 있습니다.
1. CSS(Cascading Style Sheets)
[기본 배치] : 3가지 형태로 CSS를 표현 합니다.
- HTML 문서에 삽입하는 경우 :
<style>
svg {
background-color: yellow;
}
</style>
- HTML 태그 속에 삽입하는 경우(svg) :
<svg width="300" height="300" style="background: yellow"></svg>
- 외부 CSS파일로 빼놓을 경우 :
<link rel="stylesheet" href="style.css" />
style.css 파일
svg {
background-color: yellow;
}
3. CSS 기본 코딩
스타일 지정 방식에서 특정 태그의 스타일을 지정하는 방식으로는 태그명, 클래스명, ID명으로 해당 태그의 스타일을 지정 할 수 있다.
<style>
svg{
background-color: yellow;
}
.a{
fill:red;
stroke:blue;
stroke-width:5;
}
#b{
fill:blue;
stroke:red;
stroke-width:5;
}
</style>
<svg width="300" height="300">
<rect class="a" x="10" y="10" width="50" height="30" />
<rect id="b" x="100" y="100" width="50" height="30" />
</svg>
위 예제는 3가지 접근 방법인데 svg 태그명으로 접근하면 html 문서상에 모든 svg 태그의 스타일을 지정하게 되고, 클래스명으로 접근하면 해당 클래명을 가진 태그만 스타일을 지정하게 된다. id명도 마찬가지입니다.
[결과]
2. D3.js로 스타일 지정
<script src="https://d3js.org/d3.v5.min.js"></script>
<script>
var svg = d3.select("body").append("svg")
.attr("width", "300")
.attr("height", "300")
.style("background-color","yellow");
</script>
지난 시간의 예제 소스 입니다. 보시면 style()함수가 있고 각 개별적으로 스타일 속성을 지정해 주시면 svg 태그의 스타일이 변경됩니다.
묶어서 한번에 스타일을 지정 하고 싶을 때에는 rect 태그를 기준으로 코딩하면 다음과 같습니다.
.styles({fill: 'red', stroke: 'blue', 'stroke-width': 5, opacity: 0.5 })
즉, 한개씩 수정할 때는 style()함수를 사용하고 여러개를 한번에 수정할 때에는 styles()함수를 사용한다.
참고로, attrs()나 styles()함수를 사용하기 위해서는 다음과 같은 링크 태그를 삽입해 놓아야 합니다.
<script src="https://d3js.org/d3-selection-multi.v1.min.js"></script>
마무리
CSS은 간단한 기본 지정만 하고 끝냈는데 사실 다양한 기능들이 있습니다. CSS를 얼마나 많은 사전지식을 가지고 있느냐에 따라 데이터 시각화의 스케일이 달라지게 됩니다. 애니메이션 효과도 부여 할 수 있고 스타일을 좀 더 정교하게 지정을 할 수 있는데 이건 CSS 래퍼런스를 좀 깊게 공부해 보세요. 나중에 D3.js로 데이터 시각화 할 때 CSS의 사전 지식을 어느정도 가지고 있으면 고퀄리티 작품을 만들 수 있을 거라 생각됩니다.
오늘 post에서는 간단히 CSS라는 것이 대충 어떤 느낌인지만 알아보는 시간이기 때문에 CSS 기교는 모두 뺐습니다. 이부분은 여러분들이 한번 CSS에 대한 문법을 공부한 뒤에 D3.js에서 CSS를 다뤄 보세요.
'D3.js > D3.js' 카테고리의 다른 글
[D3.js] CSV 파일 읽는법 (0) | 2019.10.30 |
---|---|
[D3.js] 버전에 따른 사라진 함수 복원 (0) | 2019.10.29 |
[D3.js] HTML의 SVG 태그 D3로 코딩 (0) | 2019.10.25 |
[D3.js] HTML의 SVG 태그 (0) | 2019.10.24 |
[D3.js] 애니메이션 효과 순환 동작 (0) | 2019.10.23 |