그래픽 관련 속성_2
트랜스폼
transform
요소의 크기, 위치, 모양 등을 변경하는 속성이다.
<!doctype html>
<html>
<head>
<style>
h1{
background-color: deepskyblue;
color:white;
display:inline-block;
padding:5px;
font-size:3rem;
margin:100px;
/*
transform:scaleX(0.5);
transform:scaleY(0.5);
*/
transform:scale(0.5, 0.5);
}
</style>
</head>
<body>
<h1>Hello Transform!</h1>
</body>
</html>
-
scale
대상의 배율을 조절한다.
transform의 속성들
See the Pen Untitled by Bakcoding (@bakcoding) on CodePen.
각 트랜스폼의 효과들은 요소의 중심을 기준으로 동작한다.
origin을 사용하면 x, y축의 값을 지정해서 특정 위치를 중심으로 동작하도록 할 수 있다.
transform-origin
<!doctype html>
<html>
<head>
<style>
h1{
background-color: deepskyblue;
color:white;
display:inline-block;
padding:5px;
font-size:3rem;
margin:100px;
/*
transform:scaleX(0.5);
transform:scaleY(0.5);
*/
transition:all 1s;
}
h1:hover{
transform:scale(1.5);
transform-origin: 100% 100%;
transition:all 1s;
}
</style>
</head>
<body>
<h1>Hello Transform!</h1>
</body>
</html>
트랜스폼 참고자료
트랜스폼 단위
트랜스폼을 다루기 위해서는 속성값의 단위를 알아야한다.
라이브러리
각 종 트랜스폼을 다루는 라이브러리 사이트
SVG
벡터 이미지를 표현하기 위한 포맷이다. css를 이용해서 다양한 효과를 줄 때 svg를 활용하기도 한다.
벡터 vs 비트맵
비트맵은 격자에 점 단위로 하나씩 위치가 저장된 것으로 이미지가 원본가 달라지면 깨지는 현상이 생긴다.
하지만 벡터는 그림을 형태 자체를 표현하기 때문에 이미지가 깨지는 현상이 생기지 않는다.
무료로 픽토그램 파일을 얻을 수 있는 사이트
<!doctype>
<html>
<head>
<style>
img{
width:50px;
}
.svg{
height: 50px;
background-image:url(vector_dog.svg);
}
</style>
</head>
<body>
<h1>Bitmap(png)</h1>
<img src="bitmap_dog.png" alt="">
<h1>Vector(svg)</h1>
<img src="vector_dog.svg" alt="">
<h1>background svg</h1>
<div class="svg"></div>
</body>
</html>
비트맵과 벡터 이미지의 차이를 확인할 수 있다. 일반 이미지와 마찬가지로 svg 파일도 백그라운드로 사용이 가능하다.
svg 그림그리기
svg 파일을 에디터로 열어보면 xml 코드로 작성되어있는걸 알 수 있다.
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" x="0px" y="0px" viewBox="0 0 512 640" enable-background="new 0 0 512 512" xml:space="preserve">
</svg>
이미지 파일에서 svg 태그부분만 가져온 다음 코드를 추가해준다.
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" x="0px" y="0px" viewBox="0 0 512 640" enable-background="new 0 0 512 512" xml:space="preserve">
<rect x="0" y="0" width="400" height="400" style="stroke:red; fill:blue"></rect>
</svg>
이렇게 만든 svg 파일을 html 파일에서 불러보면 작성한대로 이미지가 화면에 표시된다.
따라서 코드를 작성할 줄 안다면 복잡한 이미지도 코드로 만들 수 있게된다.
<!doctype>
<html>
<head>
<style>
</style>
</head>
<body>
<h1>file</h1>
<img src="svg_xml_code.svg" alt="" >
<h1>htmls</h1>
<svg width="410" height="410">
<rect x="0" y="0" width="400" height="400" style="stroke:black; stroke-width:10px; fill:blue"></rect>
</svg>
</body>
</html>
svg 참고