diff --git "a/Web-Animations/[SVG \352\270\260\354\264\210] SVG \354\273\250\355\205\214\354\235\264\353\204\210 \354\232\224\354\206\214.md" "b/Web-Animations/[SVG \352\270\260\354\264\210] SVG \354\273\250\355\205\214\354\235\264\353\204\210 \354\232\224\354\206\214.md" new file mode 100644 index 0000000..ba32c94 --- /dev/null +++ "b/Web-Animations/[SVG \352\270\260\354\264\210] SVG \354\273\250\355\205\214\354\235\264\353\204\210 \354\232\224\354\206\214.md" @@ -0,0 +1,130 @@ +# 4. SVG 컨테이너 요소 + + + +## 1. `` + +- 다른 SVG 요소들을 **group**하기 위함 +- ``에 적용된 transformation은 자식 요소들에 적용됨 + - ex. 자식 요소들에게 fill, stroke, stroke-width를 적용 + +![image](https://user-images.githubusercontent.com/40855076/168924833-85c54f9b-0e5b-42fc-9e54-ab860b7fab30.png) + +```svg + + + + + + + +``` + +## 2. `` + +- SVG 내 요소를 재사용 +- `href`를 사용해 재사용할 요소를 호출 + - ex. 기존에 정의된 `myCircle`의 속성을 따르는 복제본 생성 + + +![image](https://user-images.githubusercontent.com/40855076/168924841-dc669f1f-bed1-4295-a81f-5073616f13af.png) + +```svg + + + + + + + +``` + +## 3. `` + +- 그래픽 객체를 정의(**definitions**) +- `` 내부의 요소들은 즉시 렌더링되지 않으며, 화면에 나타내기 위해서는 참조해야함 + - ex. `` + + +![image](https://user-images.githubusercontent.com/40855076/168924851-ad9225ef-fec6-47df-8c46-d0353a0cfdf9.png) + +```svg + + + + + + + + + + + + + + +``` + +## 4. `` + +- 요소들을 그룹핑하여 템플릿을 정의 + - `viewBox`, `preserveAspectRatio` 속성을 설정할 수 있음 +- ``로 참조하여 사용할 수 있음 + - ex. 10x10 객체 가운데에 원이 있는 템플릿을 정의하여 사용 + + +![image](https://user-images.githubusercontent.com/40855076/168924858-9bf0737d-eb7b-4518-a20b-4c34b6a98563.png) + +```svg + + + + + + + + + + + + + + + + +``` + +## 5. `` + +- 새로운 coordinate system과 viewport를 정의하는 컨테이너 +- `` 내부에 `` 를 중첩해서 사용할 수 있음 + + +![image](https://user-images.githubusercontent.com/40855076/168924874-205dd3cb-b740-498d-91d2-aab5bfcce76c.png) + +```svg + + + + + + + + + +``` + +## Reference + +- [MDN](https://developer.mozilla.org/en-US/docs/Web/SVG/Element) + +## 🧐 Questions +- `` 내부의 ``와 버전이 달라도 되나? => 됨. 하지만 svg versioning은 deprecated 상태