SVG
- 확장 가능한 벡터 그래픽이다. (Scalable Vector Graphics)
- XML 기반의 2차원 그래픽이다.
- DOM의 일부로 각 개체별로 HTML 요소로 추가된다.
- 벡터라서 크기와 상관없이 선명하게 유지되며 파일 사이즈가 작다.
- CSS와 JS를 이용하여 이미지 조작이 가능하다.
- 모양이 복잡하고 개체가 많을수록 성능이 저하된다.
fill
- SVG 이미지의 색상을 바꾼다.
.svgImage {
fill: brown;
}
- 적용 전
- 적용 후
stroke
- SVG 이미지 선의 색상을 바꾼다.
.svgImage {
stroke: blue;
stroke-width: 10px;
stroke-lincap: round; /* 선을 둥글게 처리 */
stroke-linejoin: miter; /* 선의 끝부분을 둥글게 처리 */
}
@keyframes
- 애니메이션의 진행 과정을 나타낸다.
- 0%는 keyframes의 시작 지점이다.
- 100%는 keyframes의 끝나는 지점이다.
@keyframes eye {
0% {
transform: scale(0.9);
}
100% {
transform: scale(1.1);
}
}
animation
- keyframes와 연결되는 속성이다.
- 키프레임 애니메이션을 속도, 반복 등을 제어한다.
.eye {
animation: eye 1s infinite alternate;
}
- 첫번째 파라미터는 클래스 이름이며 두번째는 속도를 나타낸다.
- 3번째 파라미터 속성
- infinite : 무한 반복
- 4번째 파라미터 속성
- alternate : 애니메이션이 다시 시작되면서 튀지 않으며 반대로 진행한다.
transform-origin
- 애니메이션의 중심점을 잡는 속성이다.
.eye {
transform-origin: center center;
}
- center center로 할 경우 svg의 정 중앙이 중심점이 된다.
- 각 아이템별 중심점을 잡으려면 아이템의 속성 cx, cy의 값을 넣어주면 된다.
rect
- 사각형을 그리는 태그이다.
- 사각형의 기준점은 좌측 상단이다.
<rect x="10" y"20" rx='10' rx='20' width="200" height="100"> </rect>
- x = 좌측으로부터 x의 값만큼 오른쪽으로 이동한다.
- y = 위쪽으로부터 y의 값만큼 아래로 이동한다.
- rx = 상단 꼭짓점을 둥글게 만든다.
- ry = 하단 꼭짓점을 둥글게 만든다.
- width = 사각형의 너비를 지정한다.
- height = 사각형의 높이를 지정한다.
circle
- 원을 그리는 태그이다.
- 원의 기준점은 중앙이다.
<circle cx="350" cy="250" r='"100" />
- cx = 좌측으로부터 x의 값만큼 오른쪽으로 이동한다.
- cy = 좌측으로부터 y의 값만큼 아래쪽으로 이동한다.
- r = 원의 크기를 결정하는 반지름이다.
ellipse
- 납작한 원을 그릴 수 있는 태그이다.
<ellipse cx="200" cy="200" rx="50" ry="100" />

<ellipse cx="200" cy="200" rx="50" ry="100" />
line
- 선을 그을 수 있는 태그이다.
<line x1="10" x2="200" y1="30" y2="250" stroke="black" stroke-width="30" />
- x1 = x축 선의 시작점이다.
- x2 = x축 선의 끝지점이다.
- y1 = y축 선의 시작점이다.
- y2 = y축 선의 끝지점이다.
polyline
- 직선을 계속 이어서 그릴 수 있는 태그이다.
- stroke가 마무리를 점을 잇지 않는다.
<polyline points="0 0, 200 100, 150 300" stroke="blue" stroke-width="10" />
- points = 좌표로 점을 정해주고 점을 모두 이어 그리고 채운다.
polygon
- 직선을 계속 이어서 그릴 수 있는 태그이다.
- stroke가 마무리 점을 잇는다.
<polygon points="0 0, 200 100, 150 300" stroke="blue" stroke-width="10" />
path
- 펜 툴 도구를 통해 패스를 이어 선을 그린다.
<path d="M 300 200 L 500 100 H 50 V 300" />
- d
- M = 시작점을 위치시킨다.
- L = 좌표값을 통한 직선을 긋는다.
- H = 수평으로 직선을 긋는다.
- V = 수직으로 직선을 긋는다.
<path d="M 300 200 C 100 150,300 50, 500 250" />
- c = 곡선을 만들 수 있는 속성이다.
- 첫번째 파라미터에 패스의 시작점을 지정해준다.
- 두번째 파라미터에 선을 휘어버리는 지점을 지정해준다.
- 세번째 파라미터에 패스의 끝지점을 지정해준다.
text
- SVG에 글자를 적용시킬 수 있다.
<text x="20" y="50">Hello SVG</text>