단위에서 length 자료형에는 단위가 2가지 카테고리로 나뉜다.
1) 상대길이단위 : 기준점보다 n이나 n배 만큼
2) 절대길이단위 : 기준점이 없고 모니터에 보여지는 자체로 계산이 된다.
많은 사용자가 사용자 에이전트의 기본 글꼴 크기를 늘려 읽기 쉽도록 설정한다. 절대길이는 사용자 설정을 따르지 않기 때문에 접근성 문제를 유발할 수 있다. 따라서 font-size를 설정할 땐 em, rem 등 상대길이를 사용을 권장한다.
1em : 부모의 font-size
1rem : root의 font-size여기서 root는 html body를 의미한다. 브라우저에서 설정한 font-size를 상속받는다.
chrome에서 글꼴 크기를 설정 할 수 있다.
예시로, 아래의 코드처럼 작성한다면
<p>
안녕하세요. 반갑습니다. <span> 잘부탁드립니다.</span>
</p>
p {
font-size : 15px;
}
span {
font-size : 2em;
}
span에 부모인 p의 font-size가 15px이기 때문에 span의 font-size는 2em === 15px * 2 가 된다.
viewport(뷰포트) 영역 중 얼마만큼 지정할 지 정한다.
디바이스의 크기에 따라서 반응형으로 만들 때 유용하게 사용할 수 있다.
viewport(뷰포트) : 현재 화면에 보여지고 있는 다각형(보통 직사각형)의 영역을 뜻한다.
100vw : 뷰포트의 width 100%
100vh : 뷰포트의 heigth 100%
가로모드일 경우 vw가 vmax vh가 vmin이 된다.
세로모드일 경우 vw가 vmin vh가 vmax가 된다.즉, 뷰포트가 바뀌는 시점에 바뀐다.
따라서, 반응형 웹사이트를 다룰 때 사용할 수 있다.
부모 객체의 크기를 상속받는다는게 무슨 뜻이냐면
만약, 부모의 width값이 1000px으로 지정하고 자식의 width값을 50%로 하면 1000px의 50% 즉, 500px를 뜻한다.
개발자 도구에서 요소를 선택하고 computed에서 상세하게 값을 확인할 수 있다.
div {
width : calc(500px - 10%);
}
div {
width : min(100%, 500px);
}
div {
width : max(50%, 100px);
}