패스트캠퍼스 강의를 정리한 내용입니다.
"The RED : 견고한 UI 설계를 위한 마크업 가이드 by 정찬명"
<length>
<style>
/* The greater of vw or vh is 100vmax */
.vmax {
background: blue;
width: 10vmax; /* 뷰포트 너비나 높이 중 큰 값의 10% */
height: 10vmax; /* 뷰포트 너비나 높이 중 큰 값의 10% */
}
/* The lesser of vw or vh is 100vmin */
.vmin {
background: green;
width: 10vmin; /* 뷰포트 너비나 높이 중 작은 값의 10% */
height: 10vmin; /* 뷰포트 너비나 높이 중 작은 값의 10% */
}
</style>
<length-percentage>
: px 또는 % 값
<style>
.parent {
width: 300px;
height: 600px;
}
/* padding % - width of container */
.child {
width: 0;
height: 0;
padding-left: 25%; /* 75px */
padding-top: 50%; /* 150px */
background: red;
}
</style>
(종횡비 유지하기)
종횡비 유지 기법을 사용하지 않고
아래 예제와 같이 영상 사이즈를 고정값으로 넣으면, 해당 사이즈보다 작은 해상도에서 영상이 잘리는 문제 발생
→ 이러한 문제 해결을 위해 종횡비 유지 기법 사용
<iframe width="560" height="315" src=""></iframe>
// 영상의 사이즈가 width 560px, height 315px인 경우
<style>
iframe {
width: 100vw;
height: 56.25vw; /* 315/560*100=56.25 */
}
</style>
// 영상의 사이즈가 width 560px, height 315px인 경우
<style>
.ratio {
width: 100%;
height: auto;
aspect-ratio: 100/56.25; /* 너비비율/높이비율(315/560*100=56.25) */
</style>
// 영상의 사이즈가 width 560px, height 315px인 경우
<style>
.yutube {
position: relative;
padding-top: 56.25%; /* 315/560*100=56.25 */
/* yutube라는 요소의 부모(=body)를 기준으로 너비 값이 56.25만큼 padding-top 형성 */
}
/* padding-top으로 만들어 놓은 공간에 iframe 영상 끼워넣기 */
.yutube__iframe {
position: absolute;
width: 100%;
height: 100%;
top: 0;
}
</style>
→ 즉, 종횡비 유지 기법은 요소와 문서의 전체 높이를 일정하게 유지하는데 필요
<style>
.parent {
width: 300px;
height: 600px;
}
/* margin % - width of container */
.child {
width: 0;
height: 0;
margin-left: 25%; /* 75px */
margin-top: 50%; /* 150px */
background: red;
}
</style>
UA 초기 스타일에 수직 margin이 있는 요소
h1, h2, h3, h4, h5, h6, ul, ol, dl, p, blockquote, figure, hr
왜 브라우저에서는 수직 margin을 병합할까?
웹브라우저에서는 특정 요소들의 수직 margin을 기본적으로 설정해서 렌더링을 하고 있는데, 다른 블럭 요소와 수직으로 배치를 할 때 bottom margin과 top margin 사이에서 발생하는 과도한 margin을 상쇄하려는 의도가 있음